次の方法で共有


CoreDispatcher.RunIdleAsync(IdleDispatchedHandler) メソッド

定義

アイドル状態の優先度でワーカー スレッドから 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 に設定します。 そうしないと、ディスパッチャーの状態を確認せずにコールバックが引き続き実行される場合は、入力の枯渇につながる可能性があります。

適用対象

こちらもご覧ください