16
仍在学习关于异步等待。我碰到类似于以下示例:在最后一个方法行上等待
public async Task MethodAsync()
{
await Method01Async();
await Method02Async();
}
最后等待的目的是什么? Method02Async是MethodAsync方法的最后一行。所以没有任何方法剩余部分 - 没有下面的任何代码行 - 在编译器生成的回调函数中没有任何东西需要调用......我错过了什么吗?
特别想象一下,如果Method02Async是Task.Delay(5000)。如果有人说“等待MethodAsync()”,然后在完成延迟之前完成该任务,那将会非常奇怪! – 2012-04-20 14:57:18
但是写出“返回Method02Async();”是不是更好?“作为最后一行? – duduamar 2016-02-21 09:27:30
@duduamar:除非您从'MethodAsync'中移除'async',否则无法编译。这意味着你必须从'Method01Async'中删除'await'。行为有相当大的变化。 – 2016-02-22 03:23:08