CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Metode

Definisi

Menjadwalkan panggilan balik pada utas UI dari utas pekerja dengan prioritas menganggur, dan mengembalikan hasilnya secara asinkron.

public:
 virtual IAsyncAction ^ RunIdleAsync(IdleDispatchedHandler ^ agileCallback) = RunIdleAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction RunIdleAsync(IdleDispatchedHandler const& agileCallback);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction RunIdleAsync(IdleDispatchedHandler agileCallback);
function runIdleAsync(agileCallback)
Public Function RunIdleAsync (agileCallback As IdleDispatchedHandler) As IAsyncAction

Parameter

agileCallback
IdleDispatchedHandler

Panggilan balik tempat dispatcher prioritas menganggur kembali saat peristiwa dikirim.

Mengembalikan

Objek yang berisi hasil tindakan asinkron.

Atribut

Keterangan

Metode RunIdleAsync sangat mirip dengan CoreDispatcher.RunAsync, kecuali selalu menjadwalkan item kerja di CoreDispatcherPriority.Low priority. Saat Anda menjadwalkan item kerja dengan memanggil RunIdleAsync dari utas pekerja, item kerja hanya diproses ketika tidak ada pesan peristiwa yang tertunda dalam antrean. Ini memungkinkan aplikasi Anda untuk melakukan tugas seperti pemeriksaan ejaan atau pemrosesan diskrit lainnya saat sistem menganggur. Jika delegasi IdleDispatchedHandler yang dikembalikan oleh panggilan balik memiliki properti IsDispatcherIdle yang diatur ke false, item kerja segera keluar dari pemrosesan latar belakang hingga antrean peristiwa kosong lagi.

Namun, saat aplikasi Anda memproses tugas latar belakang, aplikasi dapat terus memproses selama tidak ada pesan peristiwa yang tertunda dalam antrean pesan peristiwa CoreDispatcher . Jika aplikasi Anda menerima pesan peristiwa dalam antrean, aplikasi harus keluar dari pemrosesan latar belakang. Untuk menentukan kapan aplikasi Anda harus keluar dari pemrosesan latar belakang, akses properti IsDispatcherIdle pada objek IdleDispatchedHandlerArgs yang dikembalikan oleh panggilan balik IdleDispatchedHandler yang Anda berikan ke RunIdleAsync. Jika ada pesan, keluar dari pemrosesan latar belakang dan atur prioritas ke CoreDispatcherPriority.Normal. Jika tidak, jika panggilan balik terus berjalan tanpa memeriksa status dispatcher, itu dapat menyebabkan kelaparan input.

Berlaku untuk

Lihat juga