CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) Метод

Определение

Планирует обратный вызов в потоке пользовательского интерфейса из рабочего потока с приоритетом простоя и возвращает результаты асинхронно.

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

Параметры

agileCallback
IdleDispatchedHandler

Обратный вызов, по которому диспетчер бездействующего приоритета возвращается при отправке события.

Возвращаемое значение

IAsyncAction

Объект, содержащий результаты асинхронного действия.

Атрибуты

Комментарии

Метод RunIdleAsync очень похож на CoreDispatcher.RunAsync, за исключением того, что он всегда планирует рабочий элемент в CoreDispatcherPriority.Low priority. При планировании рабочего элемента путем вызова RunIdleAsync из рабочего потока рабочий элемент обрабатывается только в том случае, если в очереди нет сообщений о событиях. Это позволяет приложению выполнять такие задачи, как проверка орфографии или другая дискретная обработка во время простоя системы. Если делегат IdleDispatchedHandler, возвращенный обратным вызовом, имеет значение false, рабочий элемент немедленно завершает фоновую обработку, пока очередь событий не пуста снова.

Тем не менее, пока приложение обрабатывает фоновую задачу, она может продолжать обработку до тех пор, пока в очереди сообщений о событиях CoreDispatcher нет сообщений о событиях. Если приложение получает сообщение о событии в очереди, оно должно выйти из фоновой обработки. Чтобы определить, когда приложение должно выйти из фоновой обработки, получите доступ к свойству IsDispatcherIdle в объекте IdleDispatchedHandlerArgs , возвращаемом обратным вызовом IdleDispatchedHandler , предоставленным runIdleAsync. Если имеется сообщение, закройте фоновую обработку и задайте приоритет CoreDispatcherPriority.Normal. В противном случае, если обратный вызов продолжает выполняться без проверки состояния диспетчера, это может привести к нехватке входных данных.

Применяется к

См. также раздел