循环的并行性是否保持循环外语句的执行顺序

时间:2014-08-02 05:41:30

标签: c# foreach task-parallel-library

问题:在下面给出的代码片段中,对循环的并行调用是否仍然保持循环前后方法的顺序?

换句话说,Method1将首先执行,然后是Method2,然后是并行循环;完成并行循环后,只会调用Method3后跟Method4。

Method1();
Method2();             
// Parallel loop
Parallel.ForEach(customers, customer => UpdateCustomerInfo(customer));
Method3();
Method4();

1 个答案:

答案 0 :(得分:3)

是的,ForEach的实施中存在隐含的等待。该方法不会返回,直到所有并行任务都完成,因此可以保证在调用Method3()之前完成每个任务。