ThreadPool реализован по-другому в .NET 4 (в отличие от .NET).
Когда вы устанавливаете Max ThreadPool, вы говорите, сколько вы хотите, чтобы threadPool создал , если требуется . Если задача, поставленная в очередь, быстрая, она может обработать ее даже с несколькими из них, не создавая 20 потоков.
Вы можете установить SetMinThreads, который будет гарантировать, что он сначала создает минимальное количество потоков. Но будьте осторожны с этим, поскольку создание потоков - это попадание ресурсов
см. Статью MSDN