Mengendalikan Berbilang Operasi Tak Segerak Serentak dan Hasilnya dengan Cekap
Panduan ini menunjukkan cara melaksanakan berbilang tugas tak segerak secara serentak dan mendapatkan semula keputusan masing-masing. Katakan anda mempunyai tiga operasi tak segerak bebas, setiap satu menghasilkan hasil yang unik. Objektifnya adalah untuk menjalankan tugasan ini secara serentak dan mengakses keputusan masing-masing setelah semuanya selesai.
Kaedah Task.WhenAll
menyediakan penyelesaian yang elegan. Kaedah ini mencipta satu tugasan yang selesai hanya apabila semua tugasan input selesai. Ia kemudian mengembalikan tatasusunan yang mengandungi hasil daripada setiap tugasan.
Berikut ialah pelaksanaan praktikal:
<code class="language-csharp">Task<string> catTask = FeedCatAsync(); Task<bool> houseTask = SellHouseAsync(); Task<int> carTask = BuyCarAsync(); await Task.WhenAll(catTask, houseTask, carTask); string catResult = await catTask; bool houseResult = await houseTask; int carResult = await carTask;</code>
Dalam contoh ini, catTask
, houseTask
dan carTask
mewakili operasi tak segerak anda. Task.WhenAll
memulakannya serentak. Baris await Task.WhenAll(...)
menjeda pelaksanaan sehingga ketiga-tiga tugasan selesai.
Selepas selesai, anda boleh mengakses keputusan individu dengan menunggu setiap tugas asal. Hasilnya disimpan dalam catResult
, houseResult
dan carResult
, sedia untuk diproses selanjutnya.
Adalah penting untuk diingat bahawa kaedah tak segerak, apabila diseru, segera mengembalikan tugasan "panas"—yang telah dimulakan. Oleh itu, anda mesti menggunakan await
(seperti yang ditunjukkan di atas) atau Task.Result
untuk mendapatkan hasil sebenar. Menggunakan await
biasanya lebih disukai kerana kejelasan dan keupayaan pengendalian pengecualian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelaras dan Mendapatkan Keputusan daripada Berbilang Tugas Asynchronous Serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!