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