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 的IdleDispatchedHandlerArgs 物件上存取 IdleDispatchedHandlerArgs物件上的IsDispatcherIdle屬性。 如果有訊息,請結束背景處理,並將優先順序設定為 CoreDispatcherPriority.Normal。 否則,如果回呼繼續執行而不檢查發送器狀態,可能會導致輸入耗盡。