Mik*_*keZ 5 c# asynchronous async-await
给定一个异步方法:
public async Task<int> InnerAsync()
{
await Task.Delay(1000);
return 123;
}
Run Code Online (Sandbox Code Playgroud)
并通过中间方法调用它,中间方法是等待异步方法IntermediateA还是只返回任务IntermediateB?
public async Task<int> IntermediateA()
{
return await InnerAsync();
}
private Task<int> IntermediateB()
{
return InnerAsync();
}
Run Code Online (Sandbox Code Playgroud)
我可以告诉调试器,两者看起来完全相同,但在我看来,IntermediateB应该通过避免在状态机中再等待一个条目来表现更好.
是对的吗?
这两种方法存在细微差别.如果await任务失败,则会在该方法中抛出异常,但是如果您将该方法传递给该方法,那么await该异常将在consumer方法中抛出.另一个区别更为罕见,如果消费者等待任务,并且如果延迟发生,则可以在等待点完成任务并绕过状态机.
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |