【发布时间】:2019-10-21 17:39:26
【问题描述】:
我正在使用 .Net 4.7.2 和 C# 7
在一个类中有多个方法,都是无效的。其中一些可以异步执行,另一些必须按顺序执行。所以我定义了一个平行列表
private void ExecuteSequential()
{
SomeMethod1();
SomeMethod2();
ExecuteParallelAsync();
SomeMethod3();
SomeMethod4();
}
private async void ExecuteParallelAsync()
{
List<Action> methods = new List<Action>()
{
MyMethod1,
MyMethod2,
MyMethod3
};
await Task.Run( () => { Parallel.ForEach( methods , ( currentMethod ) => currentMethod.Invoke() ); } );
}
在 SomeMethod3 恰好被执行之前 ExecuteParallelAsync 应该完全完成。 因为不是这样,显然我对 async 和 await 的使用有问题。
我做错了什么?
提前致谢!
【问题讨论】:
标签: c# async-await