Menguruskan Operasi Asynchronous Serentak dan Memastikan Selesai
Panduan ini menunjukkan strategi yang berkesan untuk melaksanakan berbilang tugas tak segerak secara serentak dalam aplikasi konsol dan mengesahkan penyelesaiannya yang berjaya.
Kaedah 1: Memanfaatkan Task.WhenAll
Bertentangan dengan beberapa sumber sedia ada, Task.WhenAll
menyediakan penyelesaian yang mudah untuk menjalankan berbilang operasi tak segerak secara serentak dan menunggu semua selesai. Berikut ialah ilustrasi:
var task1 = PerformTaskAsync(); var task2 = PerformAnotherTaskAsync(); await Task.WhenAll(task1, task2);
Task.WhenAll
mengembalikan tugasan yang boleh ditunggu yang hanya selesai apabila semua tugasan input (dalam keadaan ini, task1
dan task2
) telah selesai. Ini memastikan kod berikutnya dilaksanakan hanya selepas semua operasi tak segerak selesai.
Membandingkan Task.WaitAll
dan Task.WhenAll
Kedua-dua Task.WaitAll
dan Task.WhenAll
menunggu untuk selesai tugasan, tetapi berbeza dengan ketara. Task.WaitAll
menyekat urutan semasa, manakala Task.WhenAll
tidak menyekat. Pengendalian pengecualian juga berbeza: Task.WaitAll
mengagregatkan pengecualian ke dalam satu AggregateException
, manakala Task.WhenAll
menghasilkan tugasan Faulted
yang mengandungi pengecualian terkumpul.
Pengendalian Ralat Teguh
Task.WaitAll
melontar AggregateException
jika mana-mana tugasan gagal atau dibatalkan. Task.WhenAll
mengembalikan tugasan Faulted
jika mana-mana tugasan gagal, atau tugas Canceled
jika tugasan dibatalkan tanpa sebarang kegagalan. Pengendalian pengecualian yang betul adalah penting untuk mengurus kemungkinan ralat dengan anggun.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan dan Menunggu Berbilang Tugas Async dengan Cekap dalam Aplikasi Konsol?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!