多线程与并行编程全解析
1. 线程基础:前景线程与背景线程
在使用 System.Threading 命名空间以编程方式创建新的执行线程时,了解前景线程和背景线程的区别至关重要。
- 前景线程 :具有阻止当前应用程序终止的能力。CLR(公共语言运行时)在所有前景线程结束之前不会关闭应用程序(即卸载托管的应用程序域)。
- 背景线程 :也被称为守护线程,CLR将其视为可消耗的执行路径,在任何时间点都可以被忽略(即使它们正在处理某些工作单元)。如果所有前景线程都已终止,那么在应用程序域卸载时,所有背景线程都会自动被终止。
默认情况下,通过 Thread.Start() 方法创建的每个线程都是前景线程。不过,若想将某个线程配置为背景线程,只需将其 IsBackground 属性设置为 true 。示例代码如下:
static void Main(string[] args)
{
Console.WriteLine("***** Background Threads *****\n");
Printer p = new Printer();
Thread bgroundThread = new Thread(new ThreadStart(p.PrintNumbers));
// This is now a background thread.
bgroundThread
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



