Pengendalian acara async dalam aplikasi gaya C# Metro: Penyelesaian Bersih
Pengaturcaraan Asynchronous adalah penting untuk aplikasi gaya C#/XAML Metro yang responsif, menghalang UI membeku semasa operasi yang panjang. Walau bagaimanapun, situasi timbul di mana interaksi pengguna diperlukan pertengahan proses. Artikel ini memperincikan bagaimana untuk menanti peristiwa dengan cekap dalam kaedah asynchronous, menjeda pelaksanaan sehingga peristiwa mencetuskan.
Cabaran: Menunggu Input Pengguna Semasa Operasi Async
Bayangkan satu senario: butang memulakan kaedahGetResults
GetResults
pengundian yang tidak cekap: Kaedah untuk mengelakkan Pendekatan yang sederhana (tetapi cacat) melibatkan bendera yang dikemas kini oleh pengendali acara "Teruskan", diperiksa berulang kali dalam
menggunakan. Pengundian berterusan ini membuang sumber dan tidak cekap. GetResults
Task.Delay
C# menawarkan penyelesaian yang didorong oleh acara yang unggul:
1. Menggunakan
SemaphoreSlim
SemaphoreSlim
Lepaskan semaphore apabila butang "Teruskan" ditekan. GetResults
SemaphoreSlim.WaitAsync
TaskCompletionSource
TaskCompletionSource<bool>
Lengkapkan tugas pada klik butang. GetResults
tcs.Task
Atas ialah kandungan terperinci Bagaimanakah saya dapat menanti peristiwa dalam kaedah aplikasi Async C# Metro?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!