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

C# 循环的并行性是否保持循环外语句的执行顺序,c#,foreach,task-parallel-library,C#,Foreach,Task Parallel Library,问题:在下面给出的代码片段中,对循环的并行调用是否仍然保持循环前后方法的顺序 换句话说,Method1将首先执行,然后是Method2,然后是并行循环;一旦并行循环完成,只调用Method3和Method4 Method1(); Method2(); // Parallel loop Parallel.ForEach(customers, customer => UpdateCustomerInfo(customer)); Method3(); Method4()

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

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

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

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

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

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

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

循环之前的方法也会按顺序执行吗?只是想确保外部的方法按顺序执行。是的,它还保证Method2()在调用ForEach()中的任何任务之前返回,因此在编写时,所有任务都按顺序执行。但是,如果Method2()生成了一个执行其他操作的线程,则该线程不会与这些操作同步,除非您专门使用了semaphor.Ok。很好的解释。现在就去拿。谢谢。循环之前的方法也会按顺序执行吗?只是想确保外部的方法按顺序执行。是的,它还保证Method2()在调用ForEach()中的任何任务之前返回,因此在编写时,所有任务都按顺序执行。但是,如果Method2()生成了一个执行其他操作的线程,则该线程不会与这些操作同步,除非您专门使用了semaphor.Ok。很好的解释。现在就去拿。谢谢。循环之前的方法也会按顺序执行吗?只是想确保外部的方法按顺序执行。是的,它还保证Method2()在调用ForEach()中的任何任务之前返回,因此在编写时,所有任务都按顺序执行。但是,如果Method2()生成了一个执行其他操作的线程,则该线程不会与这些操作同步,除非您专门使用了semaphor.Ok。很好的解释。现在就去拿。谢谢。循环之前的方法也会按顺序执行吗?只是想确保外部的方法按顺序执行。是的,它还保证Method2()在调用ForEach()中的任何任务之前返回,因此在编写时,所有任务都按顺序执行。但是,如果Method2()生成了一个执行其他操作的线程,则该线程不会与这些操作同步,除非您专门使用了semaphor.Ok。很好的解释。现在就去拿。谢谢