Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjalankan Dua Tugasan Async Secara serentak dan Mendapatkan Keputusannya dalam .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!