【发布时间】:2018-11-03 05:42:06
【问题描述】:
所以我有一个异步执行某些操作的 Async 方法。
private async static void DoSomethingAsync (int i){}
我循环调用它,比如说 50 次。
for (int i = 0; i < 50; i++)
{
DoSomethingAsync (i);
}
在循环结束时,我想计算总处理时间,我使用了 Stopwatch,但你可以想象它给了我错误的时间,因为它在循环结束后立即被调用,它不会等待 DoSomethingAsync 完成处理.
如何告诉 Stopwatch 等待所有 50 个 DoSomethingAsync() 实例完成。我看过this的问题,但我不能在这里使用Task。
【问题讨论】:
-
为什么不能使用Task?
-
你只开始了50个任务,你不知道它们什么时候完成。避免使用
async void,除非您确切了解为什么[不] 使用它们。
标签: c# .net asynchronous async-await stopwatch