多年来我一直在进行异步 C# 编程,但今天是我第一次注意到有一种方法可以返回
Task
而不使用 async
和 await
关键字。
这2种方法有什么区别?
Task<int> SomeMethod()
{
return SomeAsyncMethod();
}
与
async Task<int> SomeMethod()
{
return await SomeAsyncMethod();
}
在什么情况下我们应该/不应该使用
async
和 await
关键字?
性能有差异吗?
这个问题可能已经有了答案,但我找不到。
当您不需要等待上述
async
方法的返回时,可以省略 await
和 async
。例如,您有一个流程,其中包括在您想要使用“即发即忘”方法的地方发送电子邮件。
就性能而言,调用不带
async
的 await
方法并继续流程而不等待该方法执行,速度更快且开销更少。