等待最后一个方法行

还在学习async-await。 我碰到了类似以下的例子:

public async Task MethodAsync() { await Method01Async(); await Method02Async(); } 

最后等待的目的是什么? Method02Async是MethodAsync方法的最后一行。 所以没有任何方法余数 – 下面没有任何行 – 在编译器生成的回调中没有任何东西要调用…我错过了什么吗?

实际上有一个“方法余数” – 它完成了MethodAsync返回的Task

(返回值)等待Method02Async ,以便MethodAsyncMethod02Async完成之前Method02Async完成。

如果你有:

 public async Task MethodAsync() { await Method01Async(); Method02Async(); } 

然后, MethodAsync将(异步)等待Method01Async完成,然后启动Method02Async 。 然后MethodAsync将完成,而Method02Async可能仍在进行中。

你拥有它的方式:

 public async Task MethodAsync() { await Method01Async(); await Method02Async(); } 

表示MethodAsync将(异步)等待Method01Async完成,然后(异步)等待Method02Async完成,然后MethodAsync完成。