Rumah > pembangunan bahagian belakang > C++ > Async/Await dalam C#: Kembalikan Tugas Secara Terus atau Tunggu?

Async/Await dalam C#: Kembalikan Tugas Secara Terus atau Tunggu?

Mary-Kate Olsen
Lepaskan: 2025-01-04 05:29:39
asal
231 orang telah melayarinya

Async/Await in C#: Return Task Directly or Await?

Akibat Pengembalian lwn. Menunggu pada Penghujung Kaedah Async

Dalam kaedah async yang mengembalikan Tugasan, anda mempunyai dua pilihan untuk mengendalikan panggilan async berikutnya:

Pilihan A: Kembalikan Tugas Secara langsung

Task FooAsync()
{
    return BazAsync();
}
Salin selepas log masuk

Pilihan B: Tunggu Tugasan dan Pulangan

async Task BarAsync()
{
    await BazAsync();
}
Salin selepas log masuk

Akibat Pilihan A (Kembali Terus)

  • Kelebihan: Memerlukan kurang kod plat dandang dan mencipta satu tugasan yang lebih sedikit.
  • Kelemahan: Pengecualian yang dilemparkan dalam kaedah segerak akan dihantar secara serentak.

Pilihan ini sesuai jika anda kaedah melakukan sejumlah kecil kerja segerak dan kemudian memanggil async tunggal kaedah.

Akibat Pilihan B (Tunggu dan Kembali)

  • Kelebihan: Pengecualian akan dikendalikan secara tidak segerak.
  • Kelemahan: Lebih banyak kod kata kerja dan ciptaan tugas tambahan.

Pilihan ini lebih baik jika:

  • Kaedah anda perlu melakukan operasi tak segerak tambahan selepas memanggil BazAsync().
  • Anda mahu untuk mengendalikan pengecualian yang dibangkitkan dalam kaedah tak segerak secara tidak segerak.

Nota: Anda tidak boleh mengembalikan tugas secara langsung jika kaedah itu sendiri diisytiharkan sebagai tak segerak. Ini akan menghasilkan jenis pemulangan Tugas, yang tidak dibenarkan.

Ringkasnya, keputusan antara kembali terus atau menunggu bergantung pada keperluan khusus kaedah anda. Pertimbangkan struktur kod, potensi pengecualian dan gelagat aplikasi anda yang diingini semasa membuat pilihan ini.

Atas ialah kandungan terperinci Async/Await dalam C#: Kembalikan Tugas Secara Terus atau Tunggu?. 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