Rumah >pembangunan bahagian belakang >C++ >Menunggu vs. Tugasan. Keputusan: Bilakah Saya Harus Menggunakan Setiap dalam C#?

Menunggu vs. Tugasan. Keputusan: Bilakah Saya Harus Menggunakan Setiap dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-22 23:24:12956semak imbas

Await vs. Task.Result: When Should I Use Each in C#?

Amalan terbaik Menunggu dan Tugas. Menghasilkan pengaturcaraan tak segerak C#

Pengaturcaraan tak segerak dalam C# selalunya melibatkan Tugasan, yang merangkumi unit kerja yang berjalan lama. Dua cara biasa untuk mengendalikan tugas ialah await dan Task.Result. Walaupun kedua-duanya boleh mencapai hasil yang sama, terdapat perbezaan yang ketara dalam tingkah laku mereka.

Kata kunci

await akan menggantung pelaksanaan kaedah semasa sehingga tugas menunggu selesai. Untuk tugasan yang lengkap sepenuhnya, ungkapan await mengembalikan hasil tugasan secara langsung, menjadikan kod lebih bersih dan berpotensi meningkatkan prestasi.

Sebaliknya, Task.Result mendapatkan semula hasil tugasan dengan segera. Jika tugasan gagal, ia akan membuang AggregateException pengecualian dan boleh menyebabkan jalan buntu dalam beberapa senario tak segerak. Oleh itu, secara amnya disyorkan untuk menggunakan await dan bukannya Task.Result.

Stephen Cleary mengesyorkan menggunakan await dan bukannya Task.Result, terutamanya atas dua sebab berikut:

  1. Pengendalian pengecualian: await tidak membalut pengecualian dalam AggregateException, memudahkan pengurusan ralat dalam kod tak segerak.
  2. Elakkan kebuntuan: Result dan Wait boleh menyebabkan kebuntuan, terutamanya apabila digunakan dalam kaedah tak segerak. await Hapuskan risiko ini dengan memastikan tugasan selesai sebelum meneruskan pelaksanaan.

Panduan Penggunaan:

Seperti yang disyorkan oleh Cleary, garis panduan berikut digunakan untuk penggunaan Result, Wait dan await:

  • Kod aplikasi tak segerak: Sentiasa gunakan await.
  • Kod utiliti tak segerak: Result dan Wait boleh digunakan dengan berhati-hati dan dengan dokumentasi yang sesuai.
  • Kod tugasan selari: Result dan Wait adalah sesuai.

Mematuhi garis panduan ini memastikan pengendalian kod tak segerak yang betul, meminimumkan kebuntuan dan memudahkan pengendalian ralat.

Atas ialah kandungan terperinci Menunggu vs. Tugasan. Keputusan: Bilakah Saya Harus Menggunakan Setiap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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