Parallel.ForEach:如何在所有并行任务完成之前阻塞主线程

时间:2014-10-11 06:57:59

标签: c# multithreading parallel-processing

在以下场景中:我们可以阻止主线程开始执行第3步直到第2步结束吗? 我正在谈论C#

//step 1: some tasks
/*
*/

//step 2: perform some sub tasks in parallel.
Parallel.ForEach(X, x => Foo(x));

//step 3: Some other task
//Can we begin to perform step 3 until all sub tasks in step 2 finished???

2 个答案:

答案 0 :(得分:1)

这应该是默认行为。将它放在带有console.writeline的控制台应用程序中,以便在需要时进行证明。

答案 1 :(得分:0)

如果您使用Task类创建您提到的“任务”,可以尝试Task.WaitAll(Task[])