必威体育Betway必威体育官网
当前位置:首页 > IT技术

c#线程中的属性isbackground

时间:2019-06-09 20:40:00来源:IT技术作者:seo实验室小编阅读:70次「手机版」
 

isbackground

要点:

1、当在主线程中创建了一个线程,那么该线程的isbackground默认是设置为FALSE的。

2、当主线程退出的时候,IsBackground=FALSE的线程还会继续执行下去,直到线程执行结束。

3、只有IsBackground=TRUE的线程才会随着主线程的退出而退出。

4、当初始化一个线程,把Thread.IsBackground=true的时候,指示该线程为后台线程。后台线程将会随着主线程的退出而退出。

5、原理:只要所有前台线程都终止后,CLR就会对每一个活在的后台线程调用Abort()来彻底终止应用程序

Net的公用语言运行时(Common Language runtime,CLR)能区分两种不同类型的线程:前台线程和后台线程。这两者的区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。

既然前台线程和后台线程有这种差别,那么我们怎么知道该如何设置一个线程的IsBackground属性呢?下面是一些基本的原则:对于一些在后台运行的线程,当程序结束时这些线程没有必要继续运行了,那么这些线程就应该设置为后台线程。比如一个程序启动了一个进行大量运算的线程,可是只要程序一旦结束,那个线程就失去了继续存在的意义,那么那个线程就该是作为后台线程的。而对于一些服务于用户界面的线程往往是要设置为前台线程的,因为即使程序的主线程结束了,其他的用户界面的线程很可能要继续存在来显示相关的信息,所以不能立即终止它们。这里我只是给出了一些原则,具体到实际的运用往往需要编程者的进一步仔细斟酌。

一般后台线程用于处理时间较短的任务,如在一个Web服务器中可以利用后台线程来处理客户端发过来的请求信息。而前台线程一般用于处理需要长时间等待的任务,如在Web服务器中的监听客户端请求的程序,或是定时对某些系统资源进行扫描的程序。

原文链接:http://747364822zhutao.blog.163.com/blog/static/12455679620146287295491/

                </p>

相关阅读

什么是进程?什么是线程

进程 进程指的是一个程序的生命周期,也就是一段程序从开始执行到结束,这就是该程序的进程。线程 一般一个程序中会有多个任务,一个任

进程和线程的概念、区别和联系

原文链接:http://www.cnblogs.com/reality-soul/p/6397021.html 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不

Qt中的多线程(一)

0.前言 Qt中有多种实现多线程的方式,我最常用的有moveToThread()和QtConcurrent::run()两种方式。一般长时间存在的线程我用moveT

【C#学习笔记】读access2007

using System; using System.Data.OleDb; namespace ConsoleApplication { class Program { static void Main(

C#如何使用log4net记录本地日志

第一步:首先从Visual Studio中的Nuget包管理中搜索下载 Log4Net dll文件 如下图: 第二步:打开配置文件 WinFrom就是 App.config We

分享到:

栏目导航

推荐阅读

热门阅读