非同步等待
async
方法可以返回 void
,Task
或 Task<T>
。
返回型別 Task
將等待方法完成,結果將是 void
。Task<T>
將在方法完成後從 T
型別返回一個值。
在幾乎所有情況下,async
方法應該返回 Task
或 Task<T>
,而不是 void
。async void
方法無法進行,這會導致各種問題。async
應該返回 void
的唯一情況是事件處理程式。
async
/ await
通過將你的 async
方法轉換為狀態機來工作。它通過在幕後建立儲存當前狀態和任何上下文(如區域性變數)的結構來實現這一點,並在等待等待等待完成時公開 MoveNext()
方法以推進狀態(並執行任何相關程式碼)。