Bertentangan dengan salah tanggapan biasa, async/menunggu tidak menghasilkan urutan baharu. Sebaliknya, ia menggunakan pelbagai tugas kooperatif untuk meningkatkan responsif aplikasi dengan ketara.
Cara Async/Await Berfungsi
Pengkompil dengan bijak membahagikan kaedah menggunakan async/menunggu kepada dua bahagian:
await
, termasuk permulaan operasi tak segerak.await
.Urutan Pelaksanaan:
await
. Operasi tak segerak (cth., GetSomethingAsync()
) dipanggil. Operasi ini mengembalikan hasil yang belum selesai (seperti Task
).SynchronizationContext
dimaklumkan untuk menandakan selesainya operasi tak segerak. Kawalan kembali ke gelung mesej, membenarkannya memproses tugasan lain.SynchronizationContext
menerima pemberitahuan.SynchronizationContext
menambah mesej pada baris gilir gelung mesej, mencetuskan pelaksanaan Bahagian 2. Gelung mesej memproses ini, memulakan semula kaedah dari titik selepas await
. Meningkatkan Responsif
Semasa operasi tak segerak belum selesai, gelung mesej kekal bebas untuk mengendalikan input pengguna dan kemas kini UI, memastikan aplikasi responsif. Setelah selesai, Bahagian 2 mengemas kini keadaan aplikasi.
Pertimbangan Penting:
SynchronizationContext
, bukan penciptaan benang.Atas ialah kandungan terperinci Bagaimanakah Async-Oves meningkatkan respons aplikasi tanpa menggunakan benang tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!