簡體   English   中英

任務異步 c# 編程

[英]Task async c# programming

我正在使用 Visual Studio 編寫 C# 代碼。 我在異步任務方法中等待了一個任務返回函數,如下所示:

async Task AwaitForSomeTask()
{
    await DoSomething();
}

我編寫了DoSomething()方法的兩種可能實現(如下所示)。 這兩種實現有什么區別? 每一種的優點和/或缺點是什么?

Task DoSomething()
{
    return Task.Run( () => { // Some code } );
}

async Task DoSomething()
{
    // Some code
}

提前謝謝你!

async實際上意味着您將在方法中使用await 如果您不打算這樣做,那么您可以只返回 Task 而沒有async關鍵字。

在任何情況下,您都可以在調用方法上等待。

但是在第二種情況下你會做什么還不清楚,所以很難正確回答。

選項 1 用於后台 CPU 密集型工作。

選項 2 用於異步工作,即涉及await其他Task返回方法。

async關鍵字將使您能夠在代碼中使用await關鍵字來await其他任務(請參閱async/await

Task.Run(...)將安排您的代碼由 ThreadPool 中的線程執行(請參閱Task.Run 方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM