Rumah >pembangunan bahagian belakang >C++ >Menunggu vs. Tugasan. Keputusan: Bilakah Saya Harus Menggunakan Setiap dalam 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.
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:
await
tidak membalut pengecualian dalam AggregateException
, memudahkan pengurusan ralat dalam kod tak segerak. 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
:
await
. Result
dan Wait
boleh digunakan dengan berhati-hati dan dengan dokumentasi yang sesuai. 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!