Как я могу ждать до параллели.Цикл foreach завершается


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

2 84

2 ответа:

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

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

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