Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah `hasil` dan `menunggu` Melaksanakan Kawalan Aliran dalam .NET?
. Kawalan Aliran BERSIH: Menyelam Lebih Dalam ke yield
dan await
yield
dan await
ialah kata kunci .NET asas yang membolehkan aliran kawalan yang canggih, mensimulasikan konkurensi. Memahami mekanisme asasnya, bagaimanapun, memerlukan pemeriksaan yang teliti. Artikel ini menjelaskan fungsinya.
await
Mekanisme Aliran Kawalan
Bertemu await
mencetuskan tindakan masa jalan ini:
await
melampirkan perwakilan kesinambungan, menyambung pelaksanaan kemudian.Mengurus Data Sambungan
Delegasi sambungan yang dijana await
termasuk:
Data ini berada pada timbunan, memastikan kebolehaksesan walaupun di luar urutan pengaktifan tindanan biasa.
Pemeliharaan Tindanan Panggilan
Tidak seperti tindanan panggilan standard, maklumat rekod pengaktifan yang penting pada mulanya diperuntukkan timbunan. Rekod pengaktifan pemanggil tidak disimpan, kerana ia diakses selepas-await
.
yield
dan Pengurusan Negeri Iterator
yield
, dalam blok lelaran, berfungsi sama dengan await
. Apabila menemui yield
, keadaan setempat dialihkan ke timbunan, bersama-sama dengan penunjuk arahan untuk pelaksanaan MoveNext
seterusnya. Pengendalian pengecualian disepadukan dalam pengurusan dalaman blok iterator.
Strategi Pengendalian Pengecualian
Pengecualian yang tidak ditangkap ditangkap dalam tugasan dan dibaling semula apabila keputusan tugasan itu diakses.
Ringkasan
Kerumitan yield
dan await
timbul daripada pergantungan mereka pada gaya hantaran berterusan (CPS). Masa jalan secara strategik memunggah maklumat pengaktifan ke timbunan, mengekalkan aliran kawalan dan keadaan lelaran. Walaupun memahami ungkapan lambda dengan await
adalah penting, meneroka CPS lebih lanjut, seperti yang diperincikan dalam catatan blog Eric Lippert tentang yield
, iterator dan pengaturcaraan tak segerak, memberikan pemahaman yang lebih mendalam.
Atas ialah kandungan terperinci Bagaimanakah `hasil` dan `menunggu` Melaksanakan Kawalan Aliran dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!