首頁 > 後端開發 > C++ > C# 中的非同步/等待:直接回到任務還是等待?

C# 中的非同步/等待:直接回到任務還是等待?

Mary-Kate Olsen
發布: 2025-01-04 05:29:39
原創
235 人瀏覽過

Async/Await in C#: Return Task Directly or Await?

非同步方法結束時返回與等待的後果

在返回任務的非同步方法中,您有兩種選擇用於處理後續非同步呼叫:

選項A:返回任務直接

Task FooAsync()
{
    return BazAsync();
}
登入後複製

選項B:等待任務並回傳

async Task BarAsync()
{
    await BazAsync();
}
登入後複製

選項A的後果(返回直接)

  • 優點:需要更少的樣板程式碼並創建更少的任務。
  • 缺點:在同步方法將被傳遞同步地。

如果您的方法執行少量同步工作,然後呼叫單一非同步方法,則此選項適合。

選項 B(等待和返回)的後果)

  • 優點:異常將非同步處理。
  • 缺點:更詳細的程式碼並建立額外的任務。

此選項在以下情況下更可取:

  • 你的方法在呼叫後需要執行額外的非同步操作BazAsync().
  • 您需要執行額外的非同步操作BazAsync().
您需要執行額外的非同步操作BazAsync().

您需要執行額外的非同步操作BazAsync().

您想要非同步處理非同步方法中引發的異常。

注意:如果方法本身是,則不能直接返回任務宣告為非同步。這將導致返回類型為 Task,這是不允許的。 總之,直接返回還是等待取決於您的方法的特定需求。在做出此選擇時,請考慮程式碼結構、出現異常的可能性以及應用程式所需的行為。

以上是C# 中的非同步/等待:直接回到任務還是等待?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板