Как я могу дождаться завершения Parallel.ForEach

Я использую TPL в своем текущем проекте и используя Parallel.Foreach для вращения многих потоков. Класс Task содержит Wait(), чтобы дождаться завершения задачи. Как это, как я могу дождаться завершения Parallel.ForEach, а затем перейти к выполнению следующих операторов?

Ответ 1

Вам не нужно ничего делать, Parallel.Foreach() будет ждать завершения всех своих разветвленных задач. Из вызывающего потока вы можете рассматривать его как один синхронный оператор и, например, обернуть его внутри try/catch.

Ответ 2

Вам не нужно, чтобы с Parallel.Foreach: он выполняет только foreach столько потоков, сколько есть доступных процессоров, но он возвращает синхронно.

Более подробную информацию можно найти здесь