线程默认为前台线程,如果进程中存在前台线程,即使主线程结束了,进程仍然是存活的(对于程序失败退出的普遍原因就是存在“被忘记”的前台线程),而对于后台线程,主线程结束,后台线程也自动中止,整个进程结束,线程的IsBackground属性控制它的前后台状态,相关代码如下:
static void Main(string[] args) { Thread t = new Thread(TProc); t.IsBackground = true; t.Start(); } static void TProc() { Console.ReadLine(); }
默认创建后台线程,可将
t.IsBackground = true;
注释掉,观察前后台线程的表现
注意,改变线程从前台到后台不会以任何方式改变它在CPU协调程序中的优先级和状态。