Ответ 1
Вам не нужно ничего делать, Parallel.Foreach()
будет ждать завершения всех своих разветвленных задач. Из вызывающего потока вы можете рассматривать его как один синхронный оператор и, например, обернуть его внутри try/catch.
Я использую TPL в своем текущем проекте и используя Parallel.Foreach для вращения многих потоков. Класс Task содержит Wait(), чтобы дождаться завершения задачи. Как это, как я могу дождаться завершения Parallel.ForEach, а затем перейти к выполнению следующих операторов?
Вам не нужно ничего делать, Parallel.Foreach()
будет ждать завершения всех своих разветвленных задач. Из вызывающего потока вы можете рассматривать его как один синхронный оператор и, например, обернуть его внутри try/catch.
Вам не нужно, чтобы с Parallel.Foreach: он выполняет только foreach столько потоков, сколько есть доступных процессоров, но он возвращает синхронно.
Более подробную информацию можно найти здесь