Поделиться через


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

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

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

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

Атрибуты

Комментарии

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

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

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

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