Jalankan tugas tak segerak secara selari dan kumpulkan hasil dalam .NET 4.5
Pengenalan:
Pada masa yang sama melaksanakan tugasan yang berjalan lama dan mengumpul keputusannya adalah keperluan biasa dalam aplikasi .NET. Dalam .NET 4.5, dengan pengenalan pengaturcaraan tak segerak, pendekatan berasaskan benang tradisional telah berkembang. Artikel ini meneroka cara terbaik untuk melaksanakan pelaksanaan selari tugas tak segerak dalam .NET 4.5.
Kod asal:
Kod yang disediakan menunjukkan pendekatan asas menggunakan Task.Run() untuk melancarkan dua tugasan yang berjalan lama dan kemudian menggunakan Result untuk mendapatkan semula keputusannya. Walau bagaimanapun, kaedah ini mempunyai beberapa had:
Kod tidak sah:
Percubaan untuk mencipta Tugasan tidak berjalan
Penyelesaian terbaik:
Penyelesaian terbaik melibatkan penggunaan versi tak segerak bagi tugasan yang berjalan lama dan memanfaatkan kaedah Task.WhenAll(). Contohnya adalah seperti berikut:
<code class="language-csharp">async Task<int> LongTask1() { // ...长时间运行的任务1... return 0; } async Task<int> LongTask2() { // ...长时间运行的任务2... return 1; } // ... { Task<int> t1 = LongTask1(); Task<int> t2 = LongTask2(); await Task.WhenAll(t1,t2); //现在我们可以访问t1.Result和t2.Result }</code>
Kod ini mencipta tugasan tak segerak untuk LongTask1 dan LongTask2 dan kemudian menunggu mereka selesai menggunakan Task.WhenAll(). Ini membolehkan tugasan dijalankan serentak tanpa menyekat. Akhirnya, keputusan boleh diakses menggunakan t1.Result dan t2.Result.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjalankan dan Mengumpul Hasil daripada Tugasan Async Selari dengan Cekap dalam .NET 4.5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!