Ответ 1
Минимальное количество потоков по умолчанию - это количество ядер вашего компьютера. Это хорошее число, обычно нет смысла запускать больше потоков, чем у вас есть ядра.
Максимальное количество потоков по умолчанию в 250 раз больше, чем у серверов .NET 2.0 с пакетом обновления 1 (SP1) и выше. Здесь есть огромное количество передышки. На четырехъядерном компьютере для достижения этого максимума потребуется 499 секунд, если ни один из потоков не завершится в течение разумного промежутка времени.
Планировщик потокаpool пытается ограничить количество активных потоков до минимума, по умолчанию количество ядер, которые у вас есть. Дважды в секунду он позволяет запускать еще один поток, если активные потоки не завершены. Темы, которые работают очень долго или много блокируют, что не вызвано вводом-выводом, не являются хорошими кандидатами для threadpool. Вместо этого вы должны использовать обычный поток.
Достижение максимума не здорово. На четырехъядерной машине только стеки этих потоков будут потреблять гигабайт виртуальной памяти. Получение OOM очень вероятно. Подумайте о снижении максимального количества потоков, если это ваша проблема. Или запустите несколько обычных потоков, которые получают пакеты работы из потоковой сети.