您的位置:首页 > 编程语言 > C#

C#学习常用类(2000)---Thread类(前台与后台线程)

2016-12-08 10:15 381 查看
Foreground and Backgound Threads:
托管线程或者是后台线程,或者是前台线程。 后台线程不会使托管执行环境处于运行状态,除此之外,后台线程与前台线程是一样的。 一旦所有前台线程在托管进程(其中 .exe 文件是托管程序集)中被停止,系统将停止所有后台线程并关闭。


注意
当运行时因为进程关闭而停止某个后台线程时,不会在该线程中引发异常。 但是,当线程是因为 AppDomain.Unload 方法卸载应用程序域而停止时,将同时在后台和前台线程中引发 ThreadAbortException
可使用 Thread.IsBackground 属性确定线程是后台线程还是前台线程,或更改其状态。 通过将其 IsBackground 属性设置为 true,可在任何时候将线程更改为后台线程。


重要事项
线程的前台或后台状态不影响线程中未经处理的异常的结果。 在 .NET Framework 2.0 版中,前台或后台线程中的未经处理的异常都将导致应用程序终止。 请参见 Exceptions in Managed Threads
属于托管线程池的线程(即其 IsThreadPoolThread 属性为 true 的线程)是后台线程。 从非托管代码进入托管执行环境的所有线程都被标记为后台线程。 通过创建并启动新的 Thread 对象而生成的所有线程都默认为前台线程。
如果使用一个线程监视活动(例如套接字连接),请将其 IsBackground 属性设置为 true,以便该线程不会阻止进程终止。

请参阅
Thread.IsBackground
Thread
ThreadAbortException

备注:转自https://msdn.microsoft.com/zh-cn/library/h339syd0(v=vs.110).aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Foreground and Backg