Menguruskan Operasi Asynchronous Serentak dengan Pelbagai Jenis Pulangan
Contoh ini menunjukkan cara melaksanakan berbilang tugas tak segerak secara serentak, setiap satu mengembalikan jenis hasil yang berbeza dan mendapatkan hasil tersebut dengan cekap. Bayangkan tiga fungsi tak segerak:
public class AsyncOperations { private async Task<Cat> FeedCatAsync() { ... } private async Task<House> SellHouseAsync() { ... } private async Task<Tesla> BuyCarAsync() { ... } }
Kami akan menggunakan Task.WhenAll
untuk menjalankan ini secara serentak dan mengumpul hasilnya.
// Instantiate the class containing asynchronous methods var operations = new AsyncOperations(); // Initiate the tasks var catTask = operations.FeedCatAsync(); var houseTask = operations.SellHouseAsync(); var carTask = operations.BuyCarAsync(); // Execute concurrently and wait for completion await Task.WhenAll(catTask, houseTask, carTask); // Retrieve results var cat = await catTask; var house = await houseTask; var car = await carTask; // Process the results...
Task.WhenAll
memastikan semua tugasan selesai sebelum meneruskan. Kata kunci await
adalah penting untuk mengendalikan operasi tak segerak dengan betul; ia menghalang menyekat utas utama semasa menunggu keputusan. Walaupun Task.Result
menawarkan alternatif untuk mendapatkan semula hasil, ia secara amnya kurang diutamakan kerana kemungkinan isu sekatan. Pendekatan ini menyediakan cara yang bersih dan cekap untuk mengurus tugas tak segerak serentak dengan nilai pulangan yang pelbagai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan dan Mendapatkan Hasil Secara Cekap daripada Berbilang Tugas Tak Segerak dengan Jenis Pulangan Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!