CoreDispatcher 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供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
- 继承
- 属性
- 实现
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 |
激活加速键时触发 (按下或按住) 键。 |