DispatcherQueueController.ShutdownQueueAsync Método
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í.
Detiene de forma asincrónica el dispatcherQueue asociado a este dispatcherQueueController y apaga el subproceso si CreateOnDedicatedThread creó el dispatcherQueueController.
Este método devuelve (una operación asincrónica) en cuanto se inicia la operación de apagado; pero la operación asincrónica no se completa hasta que se complete la operación de apagado.
public:
virtual IAsyncAction ^ ShutdownQueueAsync() = ShutdownQueueAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction ShutdownQueueAsync();
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction ShutdownQueueAsync();
function shutdownQueueAsync()
Public Function ShutdownQueueAsync () As IAsyncAction
Devoluciones
Una operación asincrónica, que se completará después de que la cola haya enviado todo su trabajo restante.
- Atributos
Ejemplos
// Shutdown the event loop
public async void ShutdownLoop()
{
if (_queueController != null)
{
// The await will complete after the event loop exits
await _queueController.ShutdownQueueAsync();
_queueController = null;
_queue = null;
}
}
// Another class that has access to the dedicated thread’s DispatcherQueue.
public class ModuleA
{
public async void ShutdownSetup()
{
// Gets the DispatcherQueue for the dedicated thread
// Invoked when controller begins the ShutdownQueueAsync.
_dispatcherQueue.ShutdownStarting += (s, e) =>
{
// Queue is shutting down, do this last operation which
// will update state before the loop exits
_queue.TryEnqueue(
() =>
{
FinalInThreadCleanup(_myState);
});
};
// Invoked after the DispatcherQueue event loop exits.
_dispatcherQueue.ShutdownCompleted += (s, e) =>
{
CleanUp(_myState);
};
}
}
Comentarios
Al llamar a ShutdownQueueAsync, se generan los siguientes eventos en este orden:
Estos eventos son miembros del objeto DispatcherQueue y su propósito es notificar a los agentes de escucha que DispatcherQueue se está cerrando. Los eventos se generan en el subproceso que ejecuta el propio bucle de eventos DispatcherQueue .