Rumah >pembangunan bahagian belakang >C++ >Kaedah Async: `Pulangan menunggu` vs secara langsung kembali` Tugas` - Bilakah `menunggu` perlu?
Kaedah Asynchronous:
perbandingan dengan secara langsung -When ? return await
Task<T>
Dalam pengaturcaraan asynchronous, anda boleh menulis satu kaedah untuk mengembalikan await
untuk menggunakan kaedah asynchronous, atau terus kembali ke kaedah biasa objek
asynchronous diperlukan. Task<T>
return await
Perbezaan utama adalah apabila menggunakan kaedah ini dengan Task<T>
blok dengan return await
pernyataan. Pertimbangkan dua kaedah berikut:
Dalam kaedah pertama, objek using
akan dikeluarkan dengan serta -merta selepas try
kembali. Walau bagaimanapun, ini mungkin berlaku untuk masa yang lama sebelum penyiapan sebenar. Oleh itu, disebabkan oleh pelepasan pramatang
<code class="language-csharp">Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return foo.DoAnotherThingAsync(); } } async Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return await foo.DoAnotherThingAsync(); } }</code>
Sebaliknya, kaedah kedua menggunakan Foo
memastikan bahawa objek DoAnotherThingAsync()
dikeluarkan hanya selepas DoAnotherThingAsync()
menyelesaikan tugasnya. Ini memberikan tingkah laku yang diharapkan. Foo
Oleh itu, apabila anda perlu memastikan pelepasan yang betul atau menguruskan sumber -sumber tertentu dalam operasi tak segerak yang melibatkan operasi tak segerak yang melibatkan objek
. await
Atas ialah kandungan terperinci Kaedah Async: `Pulangan menunggu` vs secara langsung kembali` Tugas` - Bilakah `menunggu` perlu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!