CoreDispatcher Clase

Definición

Proporciona el distribuidor de mensajes de eventos principal Windows Runtime. Las instancias de este tipo son responsables de procesar los mensajes de ventana y enviar los eventos al cliente.

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
Herencia
Object Platform::Object IInspectable CoreDispatcher
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Comentarios

Las instancias de este tipo se pueden obtener de la propiedad CoreWindow.Dispatcher. La instancia actual de CoreWindow se puede obtener llamando a 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);
}

Propiedades

CurrentPriority

Obtiene y establece la prioridad de la tarea actual.

HasThreadAccess

Obtiene un valor que especifica si el distribuidor de eventos proporcionado por esta instancia de CoreWindow tiene acceso al subproceso actual o no.

Métodos

ProcessEvents(CoreProcessEventsOption)

Inicia el distribuidor que procesa la cola de eventos de entrada para esta instancia de CoreWindow.

RunAsync(CoreDispatcherPriority, DispatchedHandler)

Programa la devolución de llamada proporcionada en el subproceso de interfaz de usuario desde un subproceso de trabajo y devuelve los resultados de forma asincrónica.

RunIdleAsync(IdleDispatchedHandler)

Programa una devolución de llamada en el subproceso de interfaz de usuario desde un subproceso de trabajo con prioridad inactiva y devuelve los resultados de forma asincrónica.

ShouldYield()

Consulta si el autor de la llamada debe producir si hay elementos en la cola de tareas de mayor prioridad que la tarea actual.

ShouldYield(CoreDispatcherPriority)

Consulta si el autor de la llamada debe producir si hay elementos en la cola de tareas de la prioridad especificada o superior.

StopProcessEvents()

Impide que el distribuidor procese los eventos en cola.

TryRunAsync(CoreDispatcherPriority, DispatchedHandler)

Intenta programar la devolución de llamada especificada en el subproceso de interfaz de usuario desde un subproceso de trabajo y devuelve los resultados de forma asincrónica.

TryRunIdleAsync(IdleDispatchedHandler)

Intenta programar una devolución de llamada en el subproceso de interfaz de usuario desde un subproceso de trabajo con prioridad inactiva y devuelve los resultados de forma asincrónica.

Eventos

AcceleratorKeyActivated

Se desencadena cuando se activa una tecla de aceleración (presionada o presionada).

Se aplica a