首页 > 解决方案 > 两个的第二个 Await 调用会等待第一个完成吗?

问题描述

如果我有两个正在等待的任务:

await FirstTask();
await SecondTask();

SecondTask 只有在 FirstTask 完成后才开始执行吗?

谢谢

标签: c#async-await

解决方案


是的,这就是发生的事情。

await FirstTask();
await SecondTask(); // doesn't start until FirstTask() finishes

如果你想让它们并行运行,并等待两者,你可以使用Task.WhenAll

var task1 = FirstTask();
var task2 = SecondTask(); // starts right away, even if FirstTask is still busy
await Task.WhenAll(task1, task2);

推荐阅读