CoreDispatcher クラス

定義

コア イベント メッセージ ディスパッチャー Windows ランタイム提供します。 この型のインスタンスは、ウィンドウ メッセージを処理し、クライアントにイベントをディスパッチする役割を担います。

public ref class CoreDispatcher sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class CoreDispatcher final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class CoreDispatcher
Public NotInheritable Class CoreDispatcher
継承
Object IInspectable CoreDispatcher
属性
実装

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

注釈

この型のインスタンスは、CoreWindow.Dispatcher プロパティから取得できます。 現在の CoreWindow インスタンスは、 CoreWindow.GetForCurrentThread を呼び出すことによって取得できます。

// App.cpp
...
// An implementation of IFrameworkView::Run.
void Run()
{
    CoreWindow window{ CoreWindow::GetForCurrentThread() };
    window.Activate();

    CoreDispatcher dispatcher{ window.Dispatcher() };
    dispatcher.ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}

// The CoreApplication::Run call indirectly calls the App::Run function above.
int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int)
{
    CoreApplication::Run(App());
}
void MyCoreWindowEvents::Run() // this is an implementation of IFrameworkView::Run() used to show context. It is called by CoreApplication::Run().
{
    CoreWindow::GetForCurrentThread()->Activate();

    //...

    CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}

プロパティ

CurrentPriority

現在のタスクの優先度を取得および設定します。

HasThreadAccess

CoreWindow のこのインスタンスによって提供されるイベント ディスパッチャーが現在のスレッドにアクセスできるかどうかを示す値を取得します。

メソッド

ProcessEvents(CoreProcessEventsOption)

CoreWindow のこのインスタンスの入力イベント キューを処理するディスパッチャーを開始します。

RunAsync(CoreDispatcherPriority, DispatchedHandler)

ワーカー スレッドから UI スレッドで指定されたコールバックをスケジュールし、非同期的に結果を返します。

RunIdleAsync(IdleDispatchedHandler)

アイドル状態の優先順位でワーカー スレッドから UI スレッドのコールバックをスケジュールし、非同期的に結果を返します。

ShouldYield()

現在のタスクよりも優先度の高い項目がタスク キューに存在する場合に、呼び出し元が生成する必要があるかどうかをクエリします。

ShouldYield(CoreDispatcherPriority)

指定した優先度以上のタスク キューに項目がある場合に、呼び出し元が生成する必要があるかどうかをクエリします。

StopProcessEvents()

ディスパッチャーがキューに置かれたイベントの処理を停止します。

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

ワーカー スレッドから UI スレッドで指定されたコールバックをスケジュールしようとし、非同期的に結果を返します。

TryRunIdleAsync(IdleDispatchedHandler)

アイドル状態の優先順位でワーカー スレッドから UI スレッドのコールバックをスケジュールしようとし、非同期的に結果を返します。

イベント

AcceleratorKeyActivated

アクセラレータ キーのアクティブ化 (押下または押し下げ) 時に発生します。

適用対象