首頁 > 後端開發 > C++ > 如何使用 .NET 4.5 有效率地並行執行多個非同步任務?

如何使用 .NET 4.5 有效率地並行執行多個非同步任務?

Mary-Kate Olsen
發布: 2025-01-13 06:27:41
原創
936 人瀏覽過

How Can I Efficiently Run Multiple Async Tasks in Parallel using .NET 4.5?

.NET 4.5 中高效率的平行非同步任務執行

.NET 4.5 在管理並發、長時間運行的任務時面臨挑戰。 雖然 Task.Run() 提供了一種基本方法,但它缺乏充分利用非同步功能的效率和優雅性。

卓越的解決方案利用 async/await 創建真正的非同步 Sleep 方法,允許中斷和高效恢復。 Task.WhenAll() 同時等待多個任務的完成。

改進的程式碼範例:

<code class="language-csharp">public static async Task Go()
{
    Console.WriteLine("Initiating tasks");

    Task<int> task1 = SleepAsync(5000);
    Task<int> task2 = SleepAsync(3000);

    await Task.WhenAll(task1, task2);

    int totalSleepTime = task1.Result + task2.Result;

    Console.WriteLine($"Total sleep time: {totalSleepTime} ms");
}

private static async Task<int> SleepAsync(int ms)
{
    Console.WriteLine($"Sleeping for {ms} ms");
    await Task.Delay(ms);
    Console.WriteLine($"Sleep of {ms} ms COMPLETE");
    return ms;
}</code>
登入後複製

此增強型程式碼使用 asyncTask.Delay() 實作 SleepAsync 內的非阻塞延遲。 Go 透過 Task.WhenAll() 同時啟動兩個任務,從而實現並行執行。 完成後可使用 Result 屬性存取結果。

以上是如何使用 .NET 4.5 有效率地並行執行多個非同步任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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