Я раньше хорошо использовал класс ThreadPoolExecutor Java и имел все же для нахождения хорошего эквивалента в C#. Я знаю о ThreadPool. QueueUserWorkItem, который полезен во многих случаях, но отрицательный результат, если Вы хотите управлять количеством потоков, присвоенных задаче или иметь несколько отдельных очередей для различных типов задачи.
Например, мне понравилось использовать ThreadPoolExecutor с единственным потоком для гарантии последовательного выполнения асинхронных вызовов.. Существует ли простой способ сделать это в C#? Существует ли нестатическая реализация пула потоков?
Как часть реактивных расширений (Rx), параллельная библиотека задач была перенесена в .NET 3.5. Если вы добавите ссылку на System.Threading.dll, включенную в его дистрибутив, вы сможете использовать TPL с .NET 3.5.
Существуют также пулы потоков, встроенные в среду выполнения с параллелизмом и координацией, которая находится в свободном доступе для использования. См. Эту статью MSDN для использования.
До выхода .Net 4.0 и TPL такой функции не было встроено.
Однако смотрите этот артикул