这两种方法之间的实际差异(如果有的话)是什么?
public static Task DoSomething()
{
return FooAsync();
}
public static async Task DoSomethingAsync()
{
await FooAsync();
}
答案 0 :(得分:2)
实际差异在使用它们方面是:什么都没有。两者都是'等待'。
生成的代码会有很小的差异,异步版本将变成状态机。真的不用担心。
由于这些方法不做任何其他事情,因此很难优先选择其他方法。第一个(最简单的)会做。
答案 1 :(得分:0)
await实际上会等待任务完成并返回结果。当你返回一个任务时,它返回一个将在未来完成的任务的句柄,因此你等待任务得到结果。
答案 2 :(得分:0)
呼叫者询问时,DoSomething()
将被执行。
因此,当您执行await DoSomething();
时,它将被执行。但是您可以将任务存储在变量中并稍后执行:
var task = DoSomething();
// Do stuff
await task();
使用DoSomethingAsync
,它将在被调用时执行。因为它是异步的。