Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjalankan Dua Tugasan Async Secara serentak dan Mendapatkan Keputusannya dalam .NET 4.5?

Bagaimanakah Saya Boleh Menjalankan Dua Tugasan Async Secara serentak dan Mendapatkan Keputusannya dalam .NET 4.5?

Linda Hamilton
Linda Hamiltonasal
2025-01-13 07:34:42535semak imbas

How Can I Run Two Async Tasks Concurrently and Get Their Results in .NET 4.5?

Melaksanakan dan Mendapatkan Hasil Daripada Tugasan Async Serentak dengan Cekap dalam .NET 4.5

Panduan ini menunjukkan kaedah yang diperkemas untuk menjalankan dua tugasan tak segerak serentak dalam rangka kerja .NET 4.5 dan mengumpul hasil masing-masing dengan cekap. Pendekatan sebelumnya menggunakan Task.Run() dan Thread.Sleep() kurang sesuai untuk operasi tak segerak.

Berikut ialah penyelesaian yang dipertingkatkan:

<code class="language-csharp">async Task<int> LongTask1()
{
    // Simulate a long-running operation
    await Task.Delay(1000); // Replace with your actual asynchronous task
    return 0;
}

async Task<int> LongTask2()
{
    // Simulate a long-running operation
    await Task.Delay(1500); // Replace with your actual asynchronous task
    return 1;
}

// ... within your main method ...
{
    Task<int> task1 = LongTask1();
    Task<int> task2 = LongTask2();

    await Task.WhenAll(task1, task2);

    // Access results after both tasks have completed
    int result1 = task1.Result;
    int result2 = task2.Result;
    // ... process result1 and result2 ...
}</code>

Kod yang diperhalusi ini memanfaatkan kuasa async/await:

  • LongTask1 dan LongTask2 ialah kaedah tak segerak yang mewakili operasi jangka panjang anda. Ingat untuk menggantikan Task.Delay() dengan logik tak segerak anda yang sebenar.
  • Task.WhenAll(task1, task2) memastikan kedua-dua tugas selesai sebelum meneruskan, menyegerakkan keputusan dengan berkesan.
  • task1.Result dan task2.Result menyediakan akses kepada nilai yang dikembalikan bagi setiap tugasan sebaik sahaja tugasan itu selesai dilaksanakan.

Pendekatan ini menawarkan penyelesaian yang lebih bersih, lebih cekap dan benar-benar tak segerak berbanding kaedah sebelumnya, menghapuskan keperluan untuk Task.Run() dan panggilan menyekat yang tidak cekap seperti Thread.Sleep(). Ini adalah cara yang disyorkan untuk mengendalikan tugas tak segerak serentak dalam .NET 4.5.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan Dua Tugasan Async Secara serentak dan Mendapatkan Keputusannya dalam .NET 4.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn