我找不到实际差异的任何信息。
因此,我一直这样做:
public async Task<int> DoSomethingAsync()
{
DoSomethingElse()
var result = await GetValueAsync();
var intValue = DoAnotherThing(result);
return intValue;
}
await
调用后立即使用它,但最近我看到一些帖子中的人们正在做以下事情:
await
调用之后等待并立即使用,但是我最近看到一些帖子中的人们会这样做:
public async Task<int> DoSomethingAsync()
{
var task = GetValueAsync();
DoSomethingElse()
var result = await task;
var intValue = DoAnotherThing(result);
return intValue;
}
这是否意味着方法GetValueAsync
正在开始执行,然后我们稍后等待其结果?还是它同步执行,但仍然可以await
?
await
会开始某些事情。这是完全错误的。await
只是等待某些事情完成——如何启动这件事完全取决于其他东西的实现细节——在这种情况下,取决于GetValueAsync
的内部实现方式。 - Damien_The_Unbeliever