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 Platform::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

アクセラレータ キーがアクティブになったときに発生します (押すか押したままにします)。

適用対象