信息
您所需的主题如下所示。但此主题未包含在此库中。

CoreDispatcher.RunAsync Method

计划从辅助线程对 UI 线程的给定回调,并异步返回结果。

语法


public IAsyncAction RunAsync(
  CoreDispatcherPriority priority, 
  DispatchedHandler agileCallback
)

参数

priority

类型: CoreDispatcherPriority

指定事件调度的优先级。将此 CoreDispatcherPriority::Normal 设置为。

agileCallback

类型: DispatchedHandler

在事件调度时对其中调度程序返回的回调。

返回值

类型: IAsyncAction

为完成异步事件调度提供处理程序的对象。

备注

如果您是在辅助线程上并且要在用户界面线程上安排工作,请使用 CoreDispatcher::RunAsync。始终将优先级设置为 CoreDispatcherPriority::NormalCoreDispatcherPriority::Low,并确保所有链接的回调也使用 CoreDispatcherPriority::NormalCoreDispatcherPriority::Low

如果从 Microsoft .NET 框架 Dispatcher.BeginInvokeDispatcher.Invoke 方法进行移植,请注意 CoreDispatcher::RunAsync 是异步的。没有同步版本。将 Dispatcher.Invoke 更改为 CoreDispatcher::RunAsync 之后,您的代码必须支持 Windows 运行时异步模式并且使用所选语言的特定 lambda 语法。

下面的示例演示使用 CoreDispatcher::RunAsync 利用 CoreWindow 的事件调度程序在主 UI 线程上计划工作。

为从 UI 线程中分拆辅助线程,请不要使用此方法 (CoreDispatcher::RunAsync)。代之以的是,使用 Windows::System::Threading::ThreadPool::RunAsync 方法之一重载。

注意  不存在挂起的输入事件时,调用通过 CoreDispatcherPriority::Low 优先级计划的回调。使用 CoreDispatcherPriority::Low 优先级可以使应用程序 UI 更迅速。要计划后台任务,请使用 CoreDispatcher::RunIdleAsync


await dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
   rootPage.NotifyUser("The toast encountered an error", NotifyType.ErrorMessage);
});

var ignored = dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
   Scenario3OutputText.Text += outputText;
});



要求

最低支持客户端

Windows 8

最低支持服务器

Windows Server 2012

最低支持电话

Windows Phone 8

命名空间

Windows.UI.Core
Windows::UI::Core [C++]

元数据

Windows.winmd

另请参见

CoreDispatcher

 

 

显示: