如何让每个方法等待完成 parallel.Foreach 中的另一个方法?
How to make each method wait to complete another inside of parallel.Foreach?
我对 "parallel For" 使用 Task Parallel 有一个大问题。我想让我的方法和函数同步(互相等待)。
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.For
将 运行 并行跨越 items
的 collection。它处理的每个 item
将同步调用给定的委托。意思是,它将执行 MyClass1.Function
然后 MyClass2.Function
然后 MyClass2.Method1
。这是假设您的方法是同步的,并且您没有在其中任何方法的后台线程中执行任何操作。
想象一下:
Items
| | | |
Item1: Item2: Item3: Item4:
Function1 Function1 Function1 Function1
Function2 Function2 Function2 Function2
Method1 Method1 Method1 Method1
我对 "parallel For" 使用 Task Parallel 有一个大问题。我想让我的方法和函数同步(互相等待)。
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.For
将 运行 并行跨越 items
的 collection。它处理的每个 item
将同步调用给定的委托。意思是,它将执行 MyClass1.Function
然后 MyClass2.Function
然后 MyClass2.Method1
。这是假设您的方法是同步的,并且您没有在其中任何方法的后台线程中执行任何操作。
想象一下:
Items
| | | |
Item1: Item2: Item3: Item4:
Function1 Function1 Function1 Function1
Function2 Function2 Function2 Function2
Method1 Method1 Method1 Method1