Rumah >pembangunan bahagian belakang >C++ >Kembali Menunggu vs Pulangan Tugas Langsung: Bilakah ia penting?
dan terus kembali return await
Task<T>
Dalam pengaturcaraan asynchronous, pilihan dan terus kembali
return await
Task<T>
Kelebihan
Perbezaan halus tetapi penting ini muncul dalam return await
di blok . Pertimbangkan contoh berikut:
Dalam contoh ini, jika try
adalah operasi asynchronous yang berjalan untuk masa yang lama, pernyataan using
akan melepaskan return await
sebaik sahaja selepas
<code class="language-csharp">Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return foo.DoAnotherThingAsync(); } }</code>
sebaliknya, penggunaan foo.DoAnotherThingAsync()
dalam kaedah asynchronous adalah berbeza: using
DoAnotherThingAsync()
foo
Dalam kes ini, DoAnotherThingAsync()
kata kunci memastikan operasi asynchronous selesai sebelum
. Tingkah laku ini selaras dengan fungsi yang diharapkan dan menghalang kesilapan yang berpotensi. return await
<code class="language-csharp">async Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return await foo.DoAnotherThingAsync(); } }</code>
await
Walaupun using
sudah cukup untuk kembali secara langsung dalam kebanyakan kes, apabila blok foo
digunakan dalam blok
memberikan kelebihan utama. Dengan memastikan pembebasan sumber yang betul, membantu mengekalkan integriti kod dan mencegah kemalangan.
Atas ialah kandungan terperinci Kembali Menunggu vs Pulangan Tugas Langsung: Bilakah ia penting?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!