Condividi tramite


CoreDispatcher Classe

Definizione

Fornisce il dispatcher di messaggi di evento principale Windows Runtime. Le istanze di questo tipo sono responsabili dell'elaborazione dei messaggi della finestra e dell'invio degli eventi al 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
Ereditarietà
Object Platform::Object IInspectable CoreDispatcher
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Commenti

Le istanze di questo tipo possono essere ottenute dalla proprietà CoreWindow.Dispatcher. L'istanza coreWindow corrente può essere ottenuta chiamando 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);
}

Proprietà

CurrentPriority

Ottiene e imposta la priorità dell'attività corrente.

HasThreadAccess

Ottiene un valore che specifica se il dispatcher eventi fornito da questa istanza di CoreWindow ha accesso al thread corrente o meno.

Metodi

ProcessEvents(CoreProcessEventsOption)

Avvia l'elaborazione della coda di eventi di input per questa istanza di CoreWindow.

RunAsync(CoreDispatcherPriority, DispatchedHandler)

Pianifica il callback fornito nel thread dell'interfaccia utente da un thread di lavoro e restituisce i risultati in modo asincrono.

RunIdleAsync(IdleDispatchedHandler)

Pianifica un callback nel thread dell'interfaccia utente da un thread di lavoro con priorità inattiva e restituisce i risultati in modo asincrono.

ShouldYield()

Esegue una query che indica se il chiamante deve restituire se sono presenti elementi nella coda di attività con priorità più alta rispetto all'attività corrente.

ShouldYield(CoreDispatcherPriority)

Esegue una query che indica se il chiamante deve restituire se sono presenti elementi nella coda di attività della priorità specificata o superiore.

StopProcessEvents()

Impedisce al dispatcher di elaborare eventuali eventi in coda.

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

Tenta di pianificare il callback specificato nel thread dell'interfaccia utente da un thread di lavoro e restituisce i risultati in modo asincrono.

TryRunIdleAsync(IdleDispatchedHandler)

Tenta di pianificare un callback nel thread dell'interfaccia utente da un thread di lavoro con priorità inattiva e restituisce i risultati in modo asincrono.

Eventi

AcceleratorKeyActivated

Generato quando viene attivato un tasto di scelta rapida (premuto o premuto).

Si applica a