Compartir a través de


Application.DispatcherShutdownMode Propiedad

Definición

Obtiene o establece un valor que especifica si el bucle de eventos DispatcherQueue sale cuando se cierran todas las ventanas XAML de un subproceso.

public:
 property DispatcherShutdownMode DispatcherShutdownMode { DispatcherShutdownMode get(); void set(DispatcherShutdownMode value); };
DispatcherShutdownMode DispatcherShutdownMode();

void DispatcherShutdownMode(DispatcherShutdownMode value);
public DispatcherShutdownMode DispatcherShutdownMode { get; set; }
var dispatcherShutdownMode = application.dispatcherShutdownMode;
application.dispatcherShutdownMode = dispatcherShutdownMode;
Public Property DispatcherShutdownMode As DispatcherShutdownMode

Valor de propiedad

Valor de enumeración que especifica si el bucle de eventos DispatcherQueue sale cuando se cierran todas las ventanas XAML de un subproceso. Consulte Comentarios sobre el comportamiento predeterminado.

Comentarios

Se trata de una propiedad por subproceso. Al establecerla, la propiedad solo cambiará para el subproceso actual. Es posible tener valores diferentes para esta propiedad en diferentes subprocesos de la aplicación.

Puede establecer esta propiedad en cualquier momento. El tiempo de ejecución xaml lee la propiedad cada vez que se cierra la última ventana de cualquier subproceso.

Cuando se llama al método Application.Start (como está en el inicio para las aplicaciones de escritorio winUI), el tiempo de ejecución XAML establece DispatcherShutdownModeOnLastWindowClose en para el subproceso actual. Esto hace que el bucle de eventos de DispatcherQueue salga cuando se cierren todas las ventanas XAML del subproceso.

En una aplicación de escritorio de WinUI, es posible que quieras que el código siga ejecutándose incluso después de que se hayan cerrado todas las ventanas XAML del subproceso. Para ello, puede establecer esta propiedad en OnExplicitShutdown. Después de que todas las ventanas XAML se hayan cerrado, el subproceso seguirá ejecutándose. En este estado, todavía puedes programar el trabajo en DispatcherQueue, ejecutar trabajo en otros subprocesos y mostrar nuevas ventanas XAML.

Si la aplicación no llama a Application.Start (como suele ser el caso de las aplicaciones basadas en islas XAML), esta propiedad tendrá como valor predeterminado OnExplicitShutdown. En este estado, el tiempo de ejecución xaml no realiza ninguna acción para salir del bucle de eventos cuando se cierran las ventanas XAML.

Cuando use OnExplicitShutdown, deberá salir del bucle de eventos cuando esté listo para que el bucle de eventos de ese subproceso salga. Para salir correctamente del bucle de eventos, llame a DispatcherQueue.EnqueueEventLoopExit. Como alternativa, puedes llamar a Application.Exit, lo que también hace que el tiempo de ejecución xaml llame a PostQuitMessage.

Se aplica a

Consulte también