CoreDispatcher.RunAsync Method

Planifie le rappel fourni sur le thread d'interface à partir d'un thread de travail, et retourne les résultats de façon asynchrone.

Syntaxe


public IAsyncAction RunAsync(
  CoreDispatcherPriority priority, 
  DispatchedHandler agileCallback
)

Paramètres

priority

Type: CoreDispatcherPriority

Spécifie la priorité d'une distribution d'événement. Attribuez-lui la valeur CoreDispatcherPriority::Normal.

agileCallback

Type: DispatchedHandler

Rappel sur lequel le répartiteur est renvoyé lorsque l'événement est distribué.

Valeur de retour

Type: IAsyncAction

Objet qui fournit des gestionnaires pour la répartition asynchrone d'événement terminé.

Remarques

Si vous êtes sur un thread de travail et que vous souhaitez planifier le travail sur le thread d'interface utilisateur, utilisez CoreDispatcher::RunAsync. Définissez toujours la priorité CoreDispatcherPriority::Normal ou CoreDispatcherPriority::Low, et assurez-vous que tous les rappels liés utilisent également CoreDispatcherPriority::Normal ou CoreDispatcherPriority::Low.

Si vous effectuez le portage de méthodes Microsoft.NET FrameworkDispatcher.BeginInvoke et Dispatcher.Invoke, notez que CoreDispatcher::RunAsync est asynchrone. Il n'existe aucune version synchrone. Après avoir remplacé Dispatcher.Invoke par CoreDispatcher::RunAsync, votre code doit prendre en charge le modèle asynchrone Windows Runtime et utiliser la syntaxe lambda spécifique pour le langage que vous avez choisi.

Les exemples suivants illustrent l'utilisation de CoreDispatcher::RunAsync pour planifier le travail sur le thread d'interface utilisateur principal à l'aide du répartiteur d'événements de CoreWindow.

Pour désactiver un thread de travail du thread d'interface utilisateur, n'utilisez pas cette méthode (CoreDispatcher::RunAsync). À la place, utilisez l'une des surcharges de méthode Windows::System::Threading::ThreadPool::RunAsync.

Remarque  Les rappels planifiés avec la priorité CoreDispatcherPriority::Low sont appelés en l'absence d'événements d'entrée en attente. Utilisez la priorité CoreDispatcherPriority::Low pour rendre l'interface utilisateur de l'application plus réactive. Pour planifier des tâches d'arrière-plan, utilisez 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;
});



Configuration requise

Client minimal pris en charge

Windows 8

Serveur minimal pris en charge

Windows Server 2012

Téléphone minimal pris en charge

Windows Phone 8

Espace de noms

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

Métadonnées

Windows.winmd

Voir aussi

CoreDispatcher

 

 

Afficher:
© 2014 Microsoft. Tous droits réservés.