如何使每个方法等待完成另一个内部parallel.Foreach

本文关键字:另一个 内部 parallel Foreach 何使每 方法 等待 | 更新日期: 2023-09-27 18:13:39

我有一个大问题,"并行for"通过使用任务并行。我想让我的方法和函数同步(相互等待)。

Parallel.For(items, item=>
{
    var a = MyClass1.Function(foo.x);
    var b = MyClass2.Function(zoo.y, b.z);  ---> Should wait "a" result...
    var c = MyClass2.Method1(a.x,b.z); -----> Should wait b result...
});  

我该怎么做呢?

如何使每个方法等待完成另一个内部parallel.Foreach

Parallel.For将在您的items集合上并行运行。它处理的每个item将同步调用给定的委托。这意味着,它将执行MyClass1.Function,然后执行MyClass2.Function,然后执行MyClass2.Method1。这是假设你的方法是同步的,并且你没有在后台线程中做任何事情。

想象一下:

                Items
  |          |          |          |
 Item1:      Item2:     Item3:     Item4:
Function1  Function1  Function1  Function1
Function2  Function2  Function2  Function2
Method1    Method1    Method1    Method1