Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyelaras dan Mendapatkan Keputusan daripada Berbilang Tugas Asynchronous Serentak?

Bagaimanakah Saya Boleh Menyelaras dan Mendapatkan Keputusan daripada Berbilang Tugas Asynchronous Serentak?

Barbara Streisand
Lepaskan: 2025-01-28 03:21:07
asal
615 orang telah melayarinya

How Can I Coordinate and Retrieve Results from Multiple Concurrent Asynchronous Tasks?

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

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!

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