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
Lepaskan: 2025-01-22 23:03:11
asal
756 orang telah melayarinya

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>
Salin selepas log masuk
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!

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