Freigeben über


CoreDispatcher Klasse

Definition

Stellt den Windows-Runtime zentralen Ereignisnachrichtenverteiler bereit. Instanzen dieses Typs sind für die Verarbeitung der Fensternachrichten und das Senden der Ereignisse an den Client verantwortlich.

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
Vererbung
Object Platform::Object IInspectable CoreDispatcher
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Hinweise

Instanzen dieses Typs können von der CoreWindow.Dispatcher-Eigenschaft abgerufen werden. Die aktuelle CoreWindow-instance kann abgerufen werden, indem Sie CoreWindow.GetForCurrentThread aufrufen.

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

Eigenschaften

CurrentPriority

Ruft die Priorität der aktuellen Aufgabe ab und legt sie fest.

HasThreadAccess

Ruft einen Wert ab, der angibt, ob der von diesem instance von CoreWindow bereitgestellte Ereignisverteiler Zugriff auf den aktuellen Thread hat oder nicht.

Methoden

ProcessEvents(CoreProcessEventsOption)

Startet den Dispatcher mit der Verarbeitung der Eingabeereigniswarteschlange für diese instance von CoreWindow.

RunAsync(CoreDispatcherPriority, DispatchedHandler)

Plant den bereitgestellten Rückruf für den UI-Thread von einem Workerthread und gibt die Ergebnisse asynchron zurück.

RunIdleAsync(IdleDispatchedHandler)

Plant einen Rückruf für den UI-Thread von einem Workerthread bei Leerlaufpriorität und gibt die Ergebnisse asynchron zurück.

ShouldYield()

Fragt ab, ob der Aufrufer liefern soll, wenn in der Aufgabenwarteschlange Elemente mit höherer Priorität als die aktuelle Aufgabe vorhanden sind.

ShouldYield(CoreDispatcherPriority)

Fragt ab, ob der Aufrufer zurückgeben soll, wenn in der Aufgabenwarteschlange Elemente mit der angegebenen Priorität oder höher vorhanden sind.

StopProcessEvents()

Verhindert, dass der Verteiler alle Ereignisse in der Warteschlange verarbeitet.

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

Versucht, den angegebenen Rückruf für den UI-Thread von einem Workerthread zu planen, und gibt die Ergebnisse asynchron zurück.

TryRunIdleAsync(IdleDispatchedHandler)

Versucht, einen Rückruf für den UI-Thread von einem Workerthread bei Leerlaufpriorität zu planen, und gibt die Ergebnisse asynchron zurück.

Ereignisse

AcceleratorKeyActivated

Wird ausgelöst, wenn eine Tastenkombination aktiviert wird (gedrückt oder gedrückt gehalten).

Gilt für: