许多博客介绍" 异步" &安培; " 等待",他们通常使用这样的演示代码:
public async Task Go()
{
var t = await GetNameAsync();
Console.WriteLine(t);
}
public async Task<string> GetNameAsync()
{
await Task.Delay(10000);
return "Jim";
}
我对此非常困惑,就像上面的方法一样,一旦遇到这个方法,它会在第一行得到等待时被阻止。我认为它们是同步方法,即使它是async&amp;等待。
我很困惑这些方法是Async吗?
根据我的理解,异步方法应如下所示,它将获得一个任务,但它不会立即运行,它应该执行一些同步,然后等待任务。
public async Task<string> GetNameAsync()
{
var t = Task.Delay(10000);
//1.do some thing
//2.do some thing
await t;
return "Jim";
}
async之间的异步和同步差异并不总是比同步更快。 异步:
public async Task<string> GetNameAsync()
{
await Task.Delay(10000);
return "Jim";
}
同步:
public string GetNameAsync()
{
Task.Delay(10000);
return "Jim";
}