У меня есть следующий код:ThreadPool.QueueUserWorkItem против новой темы
static void Main(string[] args)
{
Console.Write("Press ENTER to start...");
Console.ReadLine();
Console.WriteLine("Scheduling work...");
for (int i = 0; i < 1000; i++)
{
//ThreadPool.QueueUserWorkItem(_ =>
new Thread(_ =>
{
Thread.Sleep(1000);
}).Start();
}
Console.ReadLine();
}
Согласно учебнику C# 4.0 развязанной Bart De Smet (стр 1466), используя новую тему должно означать использование гораздо больше потоков, чем если вы используйте ThreadPool.QueueUserWorkItem, который закомментирован в моем коде. Однако я пробовал и то, и другое в Мониторе ресурсов, которое имеет «новую тему», существует около 11 потоков, однако, когда я использую ThreadPool.QueueUserWorkItem, их около 50. Почему я получаю противоположный результат того, что упоминается в этой книге?
Также, почему, если вы увеличиваете время сна, вы получаете еще много потоков, выделяемых при использовании ThreadPool.QueueUserWorkItem?
Вы не создадите ниги с кодом. Вам не нужен вызов «Thread.Start». –
Я отредактировал мой вопрос. –
А я вижу, вы обновляете код, не могли бы вы повторить свое тестирование и обновить наблюдаемые результаты? –