问题:在下面给出的代码片段中,对循环的并行调用是否仍然保持循环前后方法的顺序?
换句话说,Method1将首先执行,然后是Method2,然后是并行循环;完成并行循环后,只会调用Method3后跟Method4。
Method1();
Method2();
// Parallel loop
Parallel.ForEach(customers, customer => UpdateCustomerInfo(customer));
Method3();
Method4();
答案 0 :(得分:3)
是的,ForEach的实施中存在隐含的等待。该方法不会返回,直到所有并行任务都完成,因此可以保证在调用Method3()之前完成每个任务。