C# Thread3——前台线程后台线程
默认情况下,显示创建的线程都是前台线程,进程会等待内部所有的前台线程执行完才会结束退出
1.默认创建的线程都是前台线程
2.进程会等待所有的前台线程执行完而结束,如果还存在后台线程则会强行中断并且退出。
3.如果关闭程序,但是还存在前台线程没有结束,则程序并不会被完全关闭,任务管理器中还是可以看到进程。
3.通过设置Thread.IsBackground属性来设置线程的是前台还是后台。
例1(两个前台线程)
class Program
{
static void Main(string[] args)
{
Thread thread1 = new Thread(Task1);
Thread thread2 = new Thread(Task2);
thread1.Start();
thread2.Start();
}
private static void Task1()
{
Thread.Sleep();
Console.WriteLine("hello i am first");
}
private static void Task2()
{
Thread.Sleep();
Console.WriteLine("hello i am first");
}
}
控制台会等待两个线程执行完才会退出
例1(Thread1前台,Thread2后台)
class Program
{
static void Main(string[] args)
{
Thread thread1 = new Thread(Task1);
Thread thread2 = new Thread(Task2);
thread1.Start();
thread2.IsBackground = true;//设置2为后台线程
thread2.Start();
}
private static void Task1()
{
Thread.Sleep();
Console.WriteLine("hello i am first");
}
private static void Task2()
{
Thread.Sleep();
Console.WriteLine("hello i am first");
}
}
则控制台在执行完Thread1之后就会自动退出,而此时Thread2还未执行完,由于他是后台线程所以被强制中断
最后:如果程序定义了一个不会完成前台线程,主程序并不会正常结束,所以之前同事遇到一个WPF程序关闭,但是还在占用内存,就很快定位到是某前台线程未执行完成。
C# Thread3——前台线程后台线程的更多相关文章
- C#扫盲之:前台线程后台线程
1.线程分类 线程由程序员创建,可是创建的方式不同,总体来说有两种,一种是个人构造,也就是使用thread类new线程对象创建,这一类线程是大部分程序员知道的,也叫专用线程;还有一种是由CLR创建,这 ...
- C#:前台线程后台线程
1.线程分类 线程由程序员创建,可是创建的方式不同,总体来说有两种,一种是个人构造,也就是使用thread类new线程对象创建,这一类线程是大部分程序员知道的,也叫专用线程;还有一种是由CLR创建,这 ...
- Android的UI设计与后台线程交互
本文将讨论Android应用程序的线程模型以及如何使用线程来处理耗时较长的操作,而不是在主线程中执行,保证用户界面(UI)的流畅运行.本文还将阐述一些用户界面(UI)中与线程交互的API.UI用户界面 ...
- Http协议、线程、线程池
Socket模拟服务端运行代码: 1:启动服务端监听的服务,并接受客户端的连接 1.1 创建Socket Socket listenSocket=new Socket(AddressFamily.In ...
- C#夯实基础之多线程二:主线程、前台线程与后台线程
我们在<C#夯实基础之多线程一:初识多线程>一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但 ...
- Android Priority Job Queue (Job Manager):后台线程任务结果传回前台(三)
Android Priority Job Queue (Job Manager):后台线程任务结果传回前台(三) 在附录文章4,5的基础上改造MainActivity.java和MyJob.ja ...
- C# 前台线程与后台线程的区别和联系
c#前台线程与后台线程的区别和联系http://www.189works.com/article-13702-1.html 如何取消后台线程的执行http://www.cnblogs.com/shan ...
- C# 前台线程和后台线程
进程会等待所有的前台线程完成后在结束工作,但是如果只剩下后台线程,则会直接结束工作 using System; using System.Collections.Generic; using Syst ...
- C# 前台线程与后台线程区别
using System; using System.Drawing; using System.Windows.Forms; using System.Threading; namespace Wi ...
随机推荐
- netlink, PF_NETLINK - 内核与用户之间的通讯
SYNOPSIS 总揽 #include <asm/types.h> #include <sys/socket.h> #include <linux/netlink.h& ...
- modesim 仿真问题
> unisim (ERROR: Library path "d:/Xilinx/14.3/ISE_DS/ISE//vhdl/mti_se/10.1a/nt64/unisim/unis ...
- Linux中查看某 个软件的安装路径
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- IO流一
1 Java IO原理 I/O是input/output的缩写,IO技术是非常实用的技术,用于处理设备之间的数据传输.如读写文件,网络通讯等. Java程序中,对于数据的输入输出操作以“流Stream ...
- Vue中 axios+QS 插件往后台传参
之前用Vue+element写了一个后台管理系统,在登录时使用axios请求数据传参时无法正常的获取数据.发现原因是传递参数要将参数序列化.这里使用了qs插件: 简单来说,qs 是一个增加了一些安全性 ...
- 消息中间件之 RocketMQ
参考文档: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ http://rocketmq.apache.org ...
- android 常用框架总结(转载)
原文:https://blog.csdn.net/weixin_44702125/article/details/89886948
- PHP基础教程 常见PHP错误类型及屏蔽方法
程序只要在运行,就免不了会出现错误,错误很常见,比如Error,Notice,Warning等等.这篇文章兄弟连PHP培训 小编来跟大家具体说一下PHP的错误类型和屏蔽方法.在 PHP 中,主要有以下 ...
- go语言实战 摘抄
append 函数append会智能地处理底层数组的容量增长.在切片的容量小于1000个元素时,总是会成倍地增加容量.一旦元素个数超过1000,容量的增长因子就会设为1.25, 也就是每次增加25%的 ...
- [BZOJ3779]重组病毒:Link-Cut Tree+线段树
分析 其实其他的题解说的都很清楚了. 一个点出发感染到根结点所花费的时间是路径上虚边的条数+1. RELEASE相当于\(access()\). RECENTER相当于\(makeroot()\).( ...