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