Я просматривал документы Microsoft для ThreadPool
, и они объяснили, что потоки ThreadPool
являются фоновыми потоками, которые не поддерживают работу приложения, если все потоки переднего плана завершены.
Вот фрагмент кода:
public static void Main()
{
ThreadPool.QueueUserWorkItem(ThreadProc);
Console.WriteLine("From main foreground thread");
//Thread.Sleep(1000);
Console.WriteLine("Exiting from main");
}
static void ThreadProc(object stateInfo) {
Console.WriteLine("From the thread pool");
}
С Thread.Sleep(1000)
без комментариев это гарантирует, что фоновый поток завершится до выхода из основного потока переднего плана.Но когда мы комментируем часть сна, я также получаю вывод вида:
From main foreground thread
Exiting from main
From the thread pool
Это означает, что фоновый поток все еще выполняется, даже когда основной поток переднего плана вышел.Почему так?