Когда мне не следует использовать ThreadPool в .Net?

Единственная причина, по dotnet которой я бы не стал использовать thread ThreadPool для дешевой многопоточности, заключается thread в том, что мне нужно…

  1. взаимодействовать с запущенным методом (например, убить его)
  2. запустить код на STA thread (это случилось со мной)
  3. сохранить поток живым после того, как мое приложение умерло (ThreadPool потоки являются фоновыми потоками)
  4. на случай, если мне понадобится изменить приоритет темы. Мы не можем изменить приоритет потоков в ThreadPool, который по умолчанию установлен на Normal.

P.S.: Статья csharp MSDN "The Managed Thread Pool" содержит раздел под threading названием «Когда не использовать потоки пула потоков» с очень похожим, но c#-language немного более полным списком threading возможных причин неиспользования multithread пула потоков.

Есть много причин, по c# которым вам нужно пропустить c#-language ThreadPool, но если вы их не знаете, то .net ThreadPool должно быть достаточно для c#-language вас.

В качестве альтернативы threads посмотрите на новый Parallel Extensions Framework, в котором .net есть кое-что полезное, что design-decisions может удовлетворить ваши csharp потребности без использования multithread ThreadPool.

c#

.net

multithreading

design-decisions

2022-11-09T11:53:17+00:00