Partilhar via


Application.DispatcherShutdownMode Propriedade

Definição

Obtém ou define um valor que especifica se o loop de eventos DispatcherQueue é encerrado quando todas as janelas XAML em um thread são fechadas.

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 da propriedade

Um valor de enumeração que especifica se o loop de evento DispatcherQueue é encerrado quando todas as janelas XAML em um thread são fechadas. Consulte Comentários para obter o comportamento padrão.

Comentários

Essa é uma propriedade por thread. Quando você defini-lo, a propriedade só será alterada para o thread atual. É possível ter valores diferentes para essa propriedade em threads diferentes em seu aplicativo.

Você pode definir essa propriedade a qualquer momento. O runtime XAML lê a propriedade sempre que a última janela em qualquer thread é fechada.

Quando o método Application.Start é chamado (como está na inicialização para aplicativos da Área de Trabalho do WinUI), o runtime XAML define DispatcherShutdownModeOnLastWindowClose como para o thread atual. Isso faz com que o loop de eventos do DispatcherQueue seja encerrado quando todas as janelas XAML no thread forem fechadas.

Em um aplicativo da Área de Trabalho do WinUI, talvez você queira que seu código continue em execução mesmo depois que todas as janelas XAML no thread tiverem sido fechadas. Para fazer isso, você pode definir essa propriedade como OnExplicitShutdown. Em seguida, depois que todas as janelas XAML tiverem sido fechadas, o thread continuará em execução. Nesse estado, você ainda pode agendar o trabalho no DispatcherQueue, executar o trabalho em outros threads e exibir novas janelas XAML.

Se o aplicativo não chamar Application.Start (como normalmente é o caso para aplicativos baseados em Ilhas XAML), essa propriedade usará como padrão OnExplicitShutdown. Nesse estado, o runtime XAML não executa nenhuma ação para sair do loop de eventos quando as janelas XAML são fechadas.

Ao usar OnExplicitShutdown, você precisará sair do loop de eventos por conta própria quando estiver pronto para que o loop de eventos nesse thread seja encerrado. Para sair corretamente do loop de eventos, chame DispatcherQueue.EnqueueEventLoopExit. Como alternativa, você pode chamar Application.Exit, o que também faz com que o runtime XAML chame PostQuitMessage.

Aplica-se a

Confira também