非同步方法結束時何時返回或等待
在返回任務的非同步方法中,可以選擇等待後續的非同步呼叫或簡單地返回其任務。這個決定有一定的後果,應該要考慮。
選項 A:傳回任務
在這種情況下,以 FooAsync 方法為例,該方法直接傳回BazAsync 產生的任務。此方法適合保持方法聲明同步,從而啟用同步異常處理和參數驗證。它還需要運行時追蹤更少的任務。
選項 B:等待任務
在 BarAsync 方法中,await 關鍵字用於等待BazAsync 完成。當非同步方法本身被聲明為非同步方法時,這是必要的。雖然這可能會引入額外的任務,但它確保稍後可以更改該方法以執行其他後處理任務,而無需更改其返回類型。
異常
它值得注意的是,非同步方法中的同步程式碼將同步拋出異常。如果需要非同步異常處理,則應將方法宣告為非同步。
重載
返回非同步呼叫的任務通常在方法重載中使用,以提供同步的非同步替代方案
結論
選擇返回還是等待另一個非同步呼叫的Task取決於該方法的特定要求。返回任務可以保持同步行為,同時減少任務數量,而等待任務可以確保後處理的靈活性,但會產生額外任務的開銷。
以上是我應該在非同步方法結束時返回或等待任務嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!