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
Lepaskan: 2025-01-13 07:34:42
asal
530 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan