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
<code class="language-C#">var completedTask = await Task.WhenAny(downloadTask, timeoutTask); if (completedTask == timeoutTask) return null; return await downloadTask; </code>
mewakili permintaan HTTP GET dan downloadTask
berfungsi sebagai pemantau tamat masa. Jika permintaan HTTP tidak selesai dalam masa yang diberikan, timeoutTask
selesai. timeoutTask
telah selesai. Jadi mengapa coretan kod menggunakan downloadTask
kedua? Mengapa tidak menggunakan await
sahaja? downloadTask.Result
mengendalikan pengecualian secara berbeza daripada await
atau Result
. Wait
Elakkan 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
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
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!