Thread 设置 IsBackground true false 的 运行差别
1.这是一个 后台线程,IsBackground=true, 主线程完成后,后台子线程也停止了,即使 子线程 还有没运行完,也要停止
class Program
{ static void Main(string[] args)
{
Thread t = new Thread(() => {
Console.WriteLine("5秒后,运行子线程");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("运行完毕"); Console.WriteLine("5秒后,再运行子线程任务");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("因为主线程要求6秒完成, 这里需要10秒,所以这句话不会输出");
Console.ReadKey();
});
t.IsBackground = true;//设置为后台线程,主线程完成后,后台线程也停止
t.Start();
Console.WriteLine("主线程给 后台子线程 6秒完成任务");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("主线程完成了");
} }
2.因为线程IsBackground=false,不是后台线程,所以主线程即使完成了,子线程也会继续完成
class Program
{ static void Main(string[] args)
{
Thread t = new Thread(() => {
Console.WriteLine("5秒后,运行子线程");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("子线程运行完毕"); Console.WriteLine("5秒后,再运行子线程任务");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("因为线程IsBackground = false,不是后台线程,所以主线程即使完成了,子线程也会继续完成");
Console.WriteLine("请按任意键结束。。。。");
Console.ReadKey();
});
t.IsBackground = false;//因为线程IsBackground = false,不是后台线程,所以主线程即使完成了,子线程也会继续完成
t.Start();
Console.WriteLine("主线程给 子线程 6秒完成任务");
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("主线程完成了");
} }
Thread 设置 IsBackground true false 的 运行差别的更多相关文章
- 连接数据库超时设置autoReconnect=true
1,问题现象: com.mysql.jdbc.CommunicationsException: The last packet successfully received from the serve ...
- C# 多线程Thread.IsBackground=True的作用
C#中多线程的线程加.IsBackground = true与不加有什么区别? 按照MSDN上讲:“获取或设置一个值,该值指示某个线程是否为后台线程.” 其实这个解释并不到位,至少应该解释一下后台线程 ...
- C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?
原文:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 在 .NET 中创建进程时,可以传入 ProcessStartInfo ...
- 设置ASP.NET页面的运行超时时间详细到单个页面及站点
这篇文章主要介绍了如何设置ASP.NET页面的运行超时时间,包括全局超时时间.单个站点超时时间.单个页面请求超时时间,需要的朋友可以参考下 全局超时时间 服务器上如果有多个网站,希望统一设置一 ...
- docker搭建gitlab,设置邮件提醒,并运行runner
接着http://www.cnblogs.com/wsy1030/p/8431837.html 在另一台机子运行gitlab: docker run --name='gitlab' -d -p 222 ...
- 在做了 BasePage 时: 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 / / 节中包括
摘自: http://lichengguizy.blog.163.com/blog/static/11771858620122342749552/ 只有在配置文件或 Page 指令中将 enableS ...
- 问题:web.net页面超时;结果:设置ASP.NET页面的运行超时时间详细到单个页面及站点
设置ASP.NET页面的运行超时时间详细到单个页面及站点 这篇文章主要介绍了如何设置ASP.NET页面的运行超时时间,包括全局超时时间.单个站点超时时间.单个页面请求超时时间,需要的朋友可以参考下 全 ...
- Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)
前话: 其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...
- RocketMQ实战:生产环境中,autoCreateTopicEnable为什么不能设置为true
1.现象 很多网友会问,为什么明明集群中有多台Broker服务器,autoCreateTopicEnable设置为true,表示开启Topic自动创建,但新创建的Topic的路由信息只包含在其中一台B ...
随机推荐
- 解决SELinux导致Apache更改端口后无法启动的问题
systemctl start httpd # 将Apache的默认端口改为90后,启动Apache时提示失败 systemctl status httpd # 查看Apache的状态 可 ...
- Python 通过lxml遍历html xpath
#coding:utf-8 ''' Created on 2017年10月9日 @author: li.liu ''' from selenium import webdriver from lxml ...
- app安全测试初级
分析方法:静态分析 主要是利用apktool.dex2jar.jd-gui.smali2dex等静态分析工具对应用进行反编译,并对反编译后的java文件.xml文件等文件进行静态扫描分析,通过关键词搜 ...
- 在windows下安装cx_Oracle问题
将 instantclient_11_2 所在的目录添加到环境变量,但是环境变量有时没有立即生效,可以复制 oci.dll(版本也要正确)到 \Python36\Lib\site-packages 目 ...
- VFLEXGRID8控件注册
[转][两套控件]Vsflexgrid8.0和Vsview8.0 最新注册版 Vsflexgrid8.0(制作网格,树型目录.合并等) -------------------------------- ...
- Java LinkedList add vs push
Java LinkedList add 是加在list尾部. LinkedList push 施加在list头部. 等同于addFirst.
- 这里是DDOSvoid的blog
由于博主已经退役,博客现由 @一扶苏一 代为维护. DDOSvoid 在生前退役前写下了大量的 blog 存在本地,现在由他的弟子 一扶苏一 整理编纂成为题单慢慢上传,是为<论语>< ...
- web安全总结
一.XSS 首先说下最常见的 XSS 漏洞,XSS (Cross Site Script),跨站脚本攻击,因为缩写和 CSS (Cascading Style Sheets) 重叠,所以只能叫 XSS ...
- mysql 遍历所有表并条件查询
use eepm_push; DROP PROCEDURE IF EXISTS FountTable; delimiter $$ create procedure FountTable() begin ...
- Kali linux 2018 安装 Fluxion
本人是在VMware 12下安装 Kali linux 2018.2版本 安装完成后 用命令行运行更新 apt-get update apt-get full-upgrade 更新所有组件. ...