Сколько потоков создаст Parallel.For (Foreach)? MaxDegreeOfParallelism по умолчанию?
Я хочу знать, сколько потоков будет использовано при запуске цикла Parallel.For / ForEach.
Я обнаружил, что это можно изменить с помощью параметра MaxDegreeOfParallelism.
Справка по MaxDegreeOfParallelism в MSDN говорит (ссылка на сайт):
По умолчанию For и ForEach будут использовать столько потоков, сколько обеспечивает базовый планировщик, поэтому изменение MaxDegreeOfParallelism по умолчанию ограничивает только количество одновременных задач.
Но я нене знаю, сколько потоков обеспечивает планировщик.
Как я могу это узнать?
Я мог бы проверить это с циклом с 9999999 прогонов, однако этот тест покажет мне число, но не правило, которое определяет это число.
Редактировать / добавить позже:
Я погуглилSheduler Max Concurrency "и нашел (на MSDN -ссылка на сайт), тотTashSheduler
класс имеетMaximumConcurrencyLevel
собственность и:
Возвращает целое число, представляющее максимальный уровень параллелизма. Планировщик по умолчанию возвращает Int32.MaxValue.
Этот класс TaskSheduler используется какосновной планировщик для этих параллельных циклов?