Параллельно для петель.Они ждут финиша? - PullRequest
24 голосов
/ 06 января 2012

У меня есть две петли. который второй цикл должен быть запущен после окончания первого цикла .

Итак, если я использую два цикла Parallel.For(), будет ли запущен второй цикл после завершения первого цикла?

1 Ответ

38 голосов
/ 06 января 2012

Да. Parallel.For не вернется, пока все операции не будут завершены.

Если вы запустите

Parallel.For(0, 5, i => Console.WriteLine("First {0}", i));
Console.WriteLine("First Finished");
Parallel.For(0, 5, i => Console.WriteLine("Second {0}", i));
Console.WriteLine("Second Finished");

Выход

First 0
First 2
First 1
First 4
First 3
First Finished
Second 0
Second 4
Second 3
Second 2
Second 1
Second Finished

Порядок целых чисел будет меняться, но второе всегда будет после первого.

...