Rumah > pembangunan bahagian belakang > C++ > Tugas Async vs Async Void: Bilakah anda harus mengembalikan tugas?

Tugas Async vs Async Void: Bilakah anda harus mengembalikan tugas?

Mary-Kate Olsen
Lepaskan: 2025-02-01 13:56:09
asal
687 orang telah melayarinya

Async Task vs. Async Void: When Should You Return a Task?

dalam pengaturcaraan asynchronous,

dan pemilihan nilai pulangan async Task async void Adalah biasa untuk digunakan

dan

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,

dan

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

public static void AsyncMethod2(int num)
{
    Task.Factory.StartNew(() => Thread.Sleep(num));
}
Salin selepas log masuk

Kaedah async dianggap sebagai operasi asynchronous "atas -peringkat", dan mempunyai peraturan khas dalam rawatan yang tidak normal. await

Jika kaedah Top -level dibuang secara tidak normal, pemanggil tidak selalu memerhatikannya.

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!

    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