将线程设置成后台线程
- 线程分为前台线程和后台线程
.NET的CLR会区分这两种不同的线程,这两种线程的区别在于,应用程序必须等到前台线程全部运行完之后才可以退出;而对于后台线程,应用程序可以不考虑后台线程是否运行完毕直接退出,后台线程在应用程序退出时自动结束。
所以后台线程用于处理时间较短的任务,比如在一个服务器利用后台线程处理客户端发来的请求信息。而前台线程一般用于需要长时间等待的任务,如在服务器监听客户端请求的程序。
一般线程的IsBackground默认为false,即线程为前台线程,那我们把它设置为true时,就变成了后台线程。
代码:
static void Main(string[] args)
{
Console.Write("Hello World");
Thread thread = new Thread(Thread1);
thread.Start();
//thread.IsBackground = true;//将线程设置为后台线程
Console.WriteLine("主线程退出");
}
static void Thread1()
{
Thread.Sleep(1000);//线程休眠一秒
Console.WriteLine("后台线程退出");
}
上面这块代码我们将线程设置为后台线程之后,运行后的结果是,只输出完Hello World 和 主线程退出这两句话程序就退出了,不会等这个后台线程执行。