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 的 运行差别的更多相关文章

  1. 连接数据库超时设置autoReconnect=true

    1,问题现象: com.mysql.jdbc.CommunicationsException: The last packet successfully received from the serve ...

  2. C# 多线程Thread.IsBackground=True的作用

    C#中多线程的线程加.IsBackground = true与不加有什么区别? 按照MSDN上讲:“获取或设置一个值,该值指示某个线程是否为后台线程.” 其实这个解释并不到位,至少应该解释一下后台线程 ...

  3. C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?

    原文:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思? 在 .NET 中创建进程时,可以传入 ProcessStartInfo ...

  4. 设置ASP.NET页面的运行超时时间详细到单个页面及站点

    这篇文章主要介绍了如何设置ASP.NET页面的运行超时时间,包括全局超时时间.单个站点超时时间.单个页面请求超时时间,需要的朋友可以参考下     全局超时时间 服务器上如果有多个网站,希望统一设置一 ...

  5. docker搭建gitlab,设置邮件提醒,并运行runner

    接着http://www.cnblogs.com/wsy1030/p/8431837.html 在另一台机子运行gitlab: docker run --name='gitlab' -d -p 222 ...

  6. 在做了 BasePage 时: 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 / / 节中包括

    摘自: http://lichengguizy.blog.163.com/blog/static/11771858620122342749552/ 只有在配置文件或 Page 指令中将 enableS ...

  7. 问题:web.net页面超时;结果:设置ASP.NET页面的运行超时时间详细到单个页面及站点

    设置ASP.NET页面的运行超时时间详细到单个页面及站点 这篇文章主要介绍了如何设置ASP.NET页面的运行超时时间,包括全局超时时间.单个站点超时时间.单个页面请求超时时间,需要的朋友可以参考下 全 ...

  8. Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)

    前话:  其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...

  9. RocketMQ实战:生产环境中,autoCreateTopicEnable为什么不能设置为true

    1.现象 很多网友会问,为什么明明集群中有多台Broker服务器,autoCreateTopicEnable设置为true,表示开启Topic自动创建,但新创建的Topic的路由信息只包含在其中一台B ...

随机推荐

  1. monkey内存泄露

    monkey内存泄露 1.内存泄露发现方法 执行monkey测试时有时会有内存泄露情况,可以进行排查 a.手机弹出out of  memory对话框--基本确定有内存泄露 b.手机没有提示但是实际有内 ...

  2. 【python】Requests的三种参数请求方式

    URL参数请求: import requests ''' URL Parameters 请求方式: URL参数 例如: 以get 方式请求http://httpbin.org/get?first_na ...

  3. nginx设置反向代理,获取真实客户端ip

    upstream这个模块提供一个简单方法来实现在轮询和客户端IP之间的后端服务器负荷平衡. upstream abc.com { server 127.0.0.1:8080; server 127.0 ...

  4. MSSQL行车列规则

    行转列,是SQL中经常会遇到的一个问题,并且分为静态转换和动态转换,所谓静态转换即在转换的行数已知或固定:动态转换则为转换的行数不固定. 转换的方法一般采用case when语句或pivot(MSSQ ...

  5. 时间戳显示为多少分钟前,多少天前的JS处理,JS时间格式化,时间戳的转换

    var dateDiff = function (timestamp) { // 补全为13位 var arrTimestamp = (timestamp + '').split(''); for ( ...

  6. tornado处理跨域问题

    报错信息一: Access to XMLHttpRequest at 'http://localhost:4445/api/v/getmsg' from origin 'http://localhos ...

  7. TCP BBR 从开启到关闭:以 Debian 9 为例

    TCP BBR 从开启到关闭:以 Debian 9 为例 开启 执行如下命令: echo "net.core.default_qdisc=fq" >> /etc/sys ...

  8. XMind配置防火墙

    1.打开控制面板,找到防火墙 2. 启用Windows防火墙 3.高级设置,新建入站规则 配置部分一律“下一步”. XMind配置防火墙完成.如果还不行,相同方式设置出站规则.

  9. OpenFOAM——气泡上升

    计算域的顶部为大气,其余部分为壁面 流体的物性参数为: 首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,然后利用OpenFOAM下转化网格,划分完成的网格如下: 网格比较密集 ...

  10. 安装OpenStack Queens版本的教程推荐

    为了加深对OpenStack的理解,需要自己分模块安装一次,之前都是用devstack安装,傻瓜式安装虽然方便,但是也减少了我对OpenStack理解的深度. 本人参考如下文档安装成功过 http:/ ...