Han*_*ans 17 .net c# async-await c#-5.0
还在学习async-await.我碰到了类似以下的例子:
public async Task MethodAsync()
{
await Method01Async();
await Method02Async();
}
Run Code Online (Sandbox Code Playgroud)
最后等待的目的是什么?Method02Async是MethodAsync方法的最后一行.所以没有任何方法余数 - 下面没有任何行 - 在编译器生成的回调中没有任何东西要调用...我错过了什么吗?
Ste*_*ary 18
实际上有一个"方法余数" - 它完成了Task返回的MethodAsync.
(Method02Async等待的返回值),MethodAsync直到Method02Async完成才完成.
如果你有:
public async Task MethodAsync()
{
await Method01Async();
Method02Async();
}
Run Code Online (Sandbox Code Playgroud)
然后MethodAsync意志(异步)等待Method01Async完成然后开始Method02Async.MethodAsync然后将完成,同时Method02Async可能仍在进行中.
你拥有它的方式:
public async Task MethodAsync()
{
await Method01Async();
await Method02Async();
}
Run Code Online (Sandbox Code Playgroud)
意味着MethodAsync(异步)等待Method01Async完成然后(异步)等待Method02Async完成,然后才会MethodAsync完成.