Partager via


CoreDispatcher Classe

Définition

Fournit le répartiteur de messages d’événement principal Windows Runtime. Les instances de ce type sont responsables du traitement des messages de fenêtre et de la distribution des événements au client.

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
Héritage
Object Platform::Object IInspectable CoreDispatcher
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Remarques

Les instances de ce type peuvent être obtenues à partir de la propriété CoreWindow.Dispatcher. Le instance CoreWindow actuel peut être obtenu en appelant CoreWindow.GetForCurrentThread.

// 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);
}

Propriétés

CurrentPriority

Obtient et définit la priorité de la tâche actuelle.

HasThreadAccess

Obtient une valeur qui spécifie si le répartiteur d’événements fourni par cette instance de CoreWindow a ou non accès au thread actuel.

Méthodes

ProcessEvents(CoreProcessEventsOption)

Démarre le répartiteur en traitant la file d’attente d’événements d’entrée pour cette instance de CoreWindow.

RunAsync(CoreDispatcherPriority, DispatchedHandler)

Planifie le rappel fourni sur le thread d’interface utilisateur à partir d’un thread de travail et retourne les résultats de manière asynchrone.

RunIdleAsync(IdleDispatchedHandler)

Planifie un rappel sur le thread d’interface utilisateur à partir d’un thread de travail à priorité inactive et retourne les résultats de façon asynchrone.

ShouldYield()

Demande si l’appelant doit produire s’il y a des éléments dans la file d’attente de tâches dont la priorité est supérieure à celle de la tâche actuelle.

ShouldYield(CoreDispatcherPriority)

Demande si l’appelant doit produire s’il y a des éléments dans la file d’attente de tâches de la priorité spécifiée ou supérieure.

StopProcessEvents()

Empêche le répartiteur de traiter tous les événements mis en file d’attente.

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

Tente de planifier le rappel spécifié sur le thread d’interface utilisateur à partir d’un thread de travail et retourne les résultats de manière asynchrone.

TryRunIdleAsync(IdleDispatchedHandler)

Tente de planifier un rappel sur le thread d’interface utilisateur à partir d’un thread de travail à priorité inactive et retourne les résultats de manière asynchrone.

Événements

AcceleratorKeyActivated

Déclenché lorsqu’une touche d’accélérateur est activée (enfoncée ou maintenue).

S’applique à