CoreDispatcher Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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). |