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.GetForCurrentThread 来获取当前的 CoreWindow 实例。

// 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

激活加速键时触发 (按下或按住) 键。

适用于