Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah `async` dan` menunggu` berfungsi dalam pengaturcaraan async tanpa benang latar belakang?
dalam pengaturcaraan asynchronous
dan pemahaman async
await
Banyak pemaju keliru tentang mekanisme kerja
dalam pengaturcaraan asynchronous. Untuk memahami misteri penggunaan mereka, kami akan meneroka mekanisme mereka dan menunjukkan perbezaan di antara mereka dan menghasilkan benang latar belakang. async
await
penjelasan
penggunaan async
await
Contoh anda menekankan penggunaan dan
async
Dalam kod anda, selepas memulakan "DosomethingAsync ()", kod itu terus melaksanakan operasi yang tidak berkaitan dengan tugas. Pembolehubah "Akses" memegang tugas yang akan berakhir. Apabila mencapai pernyataan "Access Access", kod itu digantung dan mengeluarkan benang semasa. await
async
Memahami pelaksanaan latar belakang
Berbeza dengan andaian anda, "DosomethingAsync ()" tidak akan dilaksanakan pada benang latar belakang. Ia menggunakan benang semasa dan memulakan operasi tidak aktif. Setelah selesai, mesin negeri menyambung semula pelaksanaan dan membolehkan terus melaksanakan "Button1_Click".
contoh asynchronous yang lebih komprehensif
Untuk memberikan pemahaman yang lebih jelas, sila pertimbangkan contoh contoh berikut:
di tempat kejadian:
"myMethodAsync ()" bermula "longruningOperationAsync ()".
<code class="language-csharp">public async Task MyMethodAsync() { Task<int> longRunningTask = LongRunningOperationAsync(); // 这里可以进行独立的工作... // 等待长时间运行的任务 int result = await longRunningTask; // 使用结果... } public async Task<int> LongRunningOperationAsync() { await Task.Delay(1000); // 1秒延迟 return 1; }</code>Kerja bebas eksekutif membolehkan benang utama diteruskan.
Apabila menghadapi "menunggu LongrunningTask", benang utama akan melepaskan dan melaksanakan penggantungan.
Atas ialah kandungan terperinci Bagaimanakah `async` dan` menunggu` berfungsi dalam pengaturcaraan async tanpa benang latar belakang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!