C#从零开始学线程_004_前台进程与后台进程
前台线程与后台线程的区别:
- 进程(程序)会等待所有的前台线程完成后再结束工作(有一个前台线程未结束,程序都不会结束);
- 如果只剩下后台线程(所有的前台线程都已经结束),进程(程序)会直接结束工作。
例如下面这段代码,t1线程与t2线程只能输出到9。因为t1是后台线程,所以前台线程t2输出9之后结束的时候,t1也被结束了。
1 internal void Do() 2 { 3 Thread t1 = new Thread(() => PrintNumber(1000)); 4 t1.IsBackground = true; //设t1为后台进程 5 6 Thread t2 = new Thread(() => PrintNumber(10)); 7 t2.IsBackground = false; //前台线程;如不设置,线程默认为前台线程 8 9 t1.Start(); 10 t2.Start(); 11 } 12 13 private void PrintNumber(int count) 14 { 15 for (int i = 0; i < count; i++) 16 { 17 Thread.Sleep(1000); 18 Console.WriteLine(i.ToString()); 19 } 20 }