Ах да, параллелизм Turducken .
ThreadPoolScheduler
планирует работу с пулом потоков , отличным от пула задач, ThreadPoolScheduler
предназначался для использования на платформах, где пул задач не был доступен - предпочитайте TaskPoolScheduler
, когда это возможно.
Такое ощущение, что писатель пытался сохранить пул задач только для выполняемой задачи (простите за каламбур), используя пул потоков.
Parallel.ForEach
блокируется, пока l oop не будет завершено. Поэтому, пока он выполнялся в пуле потоков, когда генерируется новый элемент, выполните следующее ForEach
в заимствованном потоке из пула потоков.
Что касается внутреннего бита, то пишущий хочет один Task
для запуска по уникальному ключу, если он еще не запущен.