异步等待

async 方法可以返回 voidTaskTask<T>

返回类型 Task 将等待方法完成,结果将是 voidTask<T> 将在方法完成后从 T 类型返回一个值。

在几乎所有情况下,async 方法应该返回 TaskTask<T>,而不是 voidasync void 方法无法进行,这会导致各种问题。async 应该返回 void 的唯一情况是事件处理程序。

async / await 通过将你的 async 方法转换为状态机来工作。它通过在幕后创建存储当前状态和任何上下文(如局部变量)的结构来实现这一点,并在等待等待等待完成时公开 MoveNext() 方法以推进状态(并运行任何相关代码)。