Menguruskan Tugas Asynchronous dalam Aplikasi Gaya Metro C#/XAML
dalam aplikasi gaya metro C#/XAML, mengendalikan operasi jangka panjang secara tidak sengaja menggunakan/async
adalah penting untuk mencegah pembekuan UI. Walau bagaimanapun, situasi timbul di mana berhenti dan meneruskan operasi ini berdasarkan interaksi pengguna diperlukan. await
Menggunakan Semaphoreslim untuk Jeda yang didorong oleh Acara
kelas menawarkan penyelesaian yang elegan untuk penggantungan berasaskan acara: SemaphoreSlim
SemaphoreSlim
private SemaphoreSlim signal = new SemaphoreSlim(0, 1);
signal.Release();
GetResults
await signal.WaitAsync();
untuk Pengurusan Tugas
TaskCompletionSource<bool>
TaskCompletionSource<bool>
private TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();
pada butang "Teruskan" klik, tetapkan hasil tugas: tcs.SetResult(true);
Dalam operasi asynchronous anda, tunggu tugas: await tcs.Task;
Kaedah ini mengelakkan ketidakcekapan pengundian, menghapuskan sisa sibuk dan sisa sumber. Dengan menggunakan mekanisme yang didorong oleh peristiwa, anda mencapai jeda yang cekap dan meneruskan fungsi untuk tugas-tugas asynchronous yang lama.
Atas ialah kandungan terperinci Bagaimana untuk menggantung dan menyambung semula operasi tak segerak dalam aplikasi metro C#/XAML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!