Rumah >pembangunan bahagian belakang >C++ >Tugas Async vs Async Void: Bilakah anda harus mengembalikan tugas?
dalam pengaturcaraan asynchronous,
dan pemilihan nilai pulangan async Task
async void
Adalah biasa untuk digunakan
dalam pengaturcaraan asynchronous, tetapi memilih async
atau await
sebagai kaedah pulangan sering mengelirukan. public async Task AsyncMethod(int num)
public async void AsyncMethod(int num)
kembali
Task
Secara umum, kembali adalah pilihan pertama. Ia membolehkan pemanggil untuk mengesan kemajuan operasi tak segerak dan menunggu ia selesai. Ini sangat berguna apabila tugas menunjukkan bahawa ia mungkin memerlukan masa yang lama untuk menjalankan operasi.
kembali Task
kembali ke biasanya digunakan untuk operasi asynchronous tidak perlu melaporkan kemajuannya atau penerima tidak perlu menunggu untuk diselesaikan. Senario yang sesuai adalah untuk menangani peristiwa, kerana prosedur pemprosesan acara biasanya tidak dikembalikan. void
Kata kunci yang tidak diperlukan
void
Dalam beberapa kes,
mungkin tidak perlu. Sebagai contoh, jika kaedah anda hanya melaksanakan satu operasi tak segerak tunggal dan tidak perlu menjejaki kemajuannya, anda boleh menggunakan sintaks berikut: Walau bagaimanapun, dalam kes ini, masih disyorkan untuk menggunakan
dan, kerana mereka memastikan rawatan keabnormalan yang betul, terutamanya apabila operasi tak segerak membuang keabnormalan yang tidak pernah berlaku sebelum ini. async
await
Langkah berjaga -jaga lain
<code class="language-csharp">public static void AsyncMethod2(int num) { Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
Kaedah async
dianggap sebagai operasi asynchronous "atas -peringkat", dan mempunyai peraturan khas dalam rawatan yang tidak normal. await
Gunakan dan untuk memastikan bahawa pengecualian dapat dikendalikan dengan betul dalam kaedah asynchronous atas dan bukan -level.
Atas ialah kandungan terperinci Tugas Async vs Async Void: Bilakah anda harus mengembalikan tugas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!