Rumah >pembangunan bahagian belakang >C++ >Await vs. Result dalam C#: Bilakah Anda Harus Menggunakan Await Daripada Mengakses Task.Result?

Await vs. Result dalam C#: Bilakah Anda Harus Menggunakan Await Daripada Mengakses Task.Result?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-22 23:03:11758semak imbas

Await vs. Result in C#: When Should You Use Await Instead of Accessing Task.Result?

Perbandingan Menunggu dan Keputusan dalam pengaturcaraan tak segerak C#

Dalam pengaturcaraan tak segerak C#, kata kunci await digunakan untuk menggantung pelaksanaan sehingga tugasan selesai. Walau bagaimanapun, sesetengah pembangun akan mempersoalkan, jika tugasan telah selesai, mengapakah await diperlukan? Artikel ini akan meneroka isu ini dan menerangkan sebab Task.Result harus digunakan sebagai keutamaan. await

Stephen Cleary mengesyorkan coretan kod berikut dalam bukunya "Concurrency in C# Cookbook":

<code class="language-C#">var completedTask = await Task.WhenAny(downloadTask, timeoutTask);  
if (completedTask == timeoutTask)  
  return null;  
return await downloadTask;  </code>
Di sini,

mewakili permintaan HTTP GET dan downloadTask berfungsi sebagai pemantau tamat masa. Jika permintaan HTTP tidak selesai dalam masa yang diberikan, timeoutTask selesai. timeoutTask

Anggap permintaan HTTP selesai sebelum tamat masa. Dalam kes ini,

telah selesai. Jadi mengapa coretan kod menggunakan downloadTask kedua? Mengapa tidak menggunakan await sahaja? downloadTask.Result

Jawapannya terletak pada nuansa pengendalian pengecualian dan kemungkinan kebuntuan.

mengendalikan pengecualian secara berbeza daripada await atau Result. WaitElakkan membungkus pengecualian dalam await, yang biasanya tidak diingini dalam kod tak segerak. Selain itu, AggregateException dan Result boleh menyebabkan kebuntuan, terutamanya dalam kaedah tak segerak. Wait

Oleh itu, adalah disyorkan untuk memberi keutamaan kepada

melainkan jelas bahawa tugasan telah selesai. Secara umum, penggunaan await dan Result harus dielakkan dalam kod aplikasi tak segerak. Ia kadangkala boleh digunakan dalam perpustakaan utiliti tak segerak atau kod tugas selari. Wait

Dengan mengikut garis panduan ini, pembangun boleh meningkatkan keselamatan dan kebolehselenggaraan pangkalan kod tak segerak serta meningkatkan kebolehbacaan kod.

Atas ialah kandungan terperinci Await vs. Result dalam C#: Bilakah Anda Harus Menggunakan Await Daripada Mengakses Task.Result?. 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