CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
以空闲优先级从工作线程安排 UI 线程上的回调,并异步返回结果。
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 优先级。 通过从工作线程调用 RunIdleAsync 来计划工作项时,仅当队列中没有挂起的事件消息时,才会处理该工作项。 这样,应用就可以在系统空闲时执行拼写检查或其他离散处理等任务。 如果回调返回的 IdleDispatchedHandler 委托将 IsDispatcherIdle 属性设置为 false,则工作项将立即退出后台处理,直到事件队列再次为空。
但是,当你的应用正在处理后台任务时,只要 CoreDispatcher 事件消息队列中没有挂起的事件消息,它就可以继续处理。 如果应用在队列中收到事件消息,则必须中断后台处理。 若要确定应用何时必须退出后台处理,请访问由提供给 RunIdleAsync 的 IdleDispatchedHandler 回调返回 的 IdleDispatchedHandlerArgs 对象的 IsDispatcherIdle 属性。 如果有消息,请退出后台处理,并将优先级设置为 CoreDispatcherPriority.Normal。 否则,如果回调继续运行而不检查调度程序状态,则可能导致输入不足。