Эквивалент Java ThreadPoolExecutor для C #? - PullRequest
5 голосов
/ 03 мая 2010

Раньше я хорошо использовал класс ThreadPoolExecutor в Java и до сих пор не нашел хорошего эквивалента в C #. Я знаю ThreadPool.QueueUserWorkItem, который полезен во многих случаях, но бесполезен, если вы хотите контролировать количество потоков, назначенных для задачи, или иметь несколько отдельных очередей для разных типов задач.

Например, мне понравилось использовать ThreadPoolExecutor с одним потоком, чтобы гарантировать последовательное выполнение асинхронных вызовов. Есть ли простой способ сделать это в C #? Есть ли нестатическая реализация пула потоков?

Ответы [ 2 ]

2 голосов
/ 03 мая 2010

До .Net 4.0 и TPL такая встроенная функция отсутствует.

Однако, см. этот artcle

0 голосов
/ 04 мая 2010

Как часть Reactive Extensions (Rx), библиотека параллельных задач была перенесена в .NET 3.5. Если вы добавите ссылку на System.Threading.dll, в том числе в его дистрибутив, вы можете использовать TPL с .NET 3.5.

Существуют также пулы потоков, встроенные в среду параллелизма и координации, которая свободно доступна для использования. См. статью MSDN для использования.

...