Schedules the provided callback on the UI thread from a worker thread, and returns the results asynchronously.
Syntax
public IAsyncAction RunAsync(
CoreDispatcherPriority priority,
DispatchedHandler agileCallback
)
Parameters
- priority
-
Type: CoreDispatcherPriority
Specifies the priority for event dispatch. Set this to CoreDispatcherPriority::Normal.
- agileCallback
-
Type: DispatchedHandler
The callback on which the dispatcher returns when the event is dispatched.
Return value
Type: IAsyncAction
The object that provides handlers for the completed async event dispatch.
Remarks
If you are on a worker thread and want to schedule work on the UI thread, use CoreDispatcher::RunAsync. Always set the priority to CoreDispatcherPriority::Normal or CoreDispatcherPriority::Low, and ensure that any chained callbacks also use CoreDispatcherPriority::Normal or CoreDispatcherPriority::Low.
If you are porting from the Microsoft .NET FrameworkDispatcher.BeginInvoke and Dispatcher.Invoke methods, note that CoreDispatcher::RunAsync is asynchronous. There is no synchronous version. After you change Dispatcher.Invoke to CoreDispatcher::RunAsync, your code must support the Windows Runtime async pattern and use the specific lambda syntax for your chosen language.
The following examples demonstrate the use of CoreDispatcher::RunAsync to schedule work on the main UI thread using the CoreWindow's event dispatcher.
To spin off a worker thread from the UI thread, do not use this method (CoreDispatcher::RunAsync). Instead, use one of the Windows::System::Threading::ThreadPool::RunAsync method overloads.
Note Callbacks scheduled with CoreDispatcherPriority::Low priority are called when there are no pending input events. Use the CoreDispatcherPriority::Low priority to make your app UI more responsive. To schedule background tasks, use 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; });
Requirements
|
Minimum supported client | Windows 8 |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Minimum supported phone | Windows Phone 8 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 2/25/2013