Мне нужно получить максимум 25 потоков, поскольку я использую пул потоков.
Максимальное количество потоков в пуле потоков на ядро со временем сильно изменилось.Это больше не 25 на ядро, что, как я подозреваю, является тем, что вы ожидали.
Например, при запуске этого на моем четырехъядерном ноутбуке с многопоточным доступом с .NET 4 я получаю максимум 32767 рабочих потоков и 1000 операций ввода-вывода.Потоки порта завершения:
using System;
using System.Threading;
class Test
{
static void Main()
{
int worker;
int ioCompletion;
ThreadPool.GetMaxThreads(out worker, out ioCompletion);
Console.WriteLine("{0} / {1}", worker, ioCompletion);
}
}
В .NET 3.5 я получаю 2000 рабочих потоков и все еще 1000 потоков порта завершения ввода-вывода.
Хотя это не число потоков на самом деле в пуле потоков- это максимальное число, которое пул потоков позволяет самому создавать со временем.