Application.DispatcherShutdownMode Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che specifica se il ciclo di eventi DispatcherQueue viene chiuso quando vengono chiuse tutte le finestre XAML in un thread.
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
Valore della proprietà
Valore di enumerazione che specifica se il ciclo di eventi DispatcherQueue viene chiuso quando tutte le finestre XAML in un thread vengono chiuse. Per il comportamento predefinito, vedere Osservazioni.
Commenti
Si tratta di una proprietà per thread. Quando lo si imposta, la proprietà cambierà solo per il thread corrente. È possibile avere valori diversi per questa proprietà in thread diversi nell'applicazione.
È possibile impostare questa proprietà in qualsiasi momento. Il runtime XAML legge la proprietà ogni volta che l'ultima finestra di qualsiasi thread viene chiusa.
Quando il metodo Application.Start viene chiamato (come avviee all'avvio per le app WinUI Desktop), il runtime XAML imposta DispatcherShutdownMode
su OnLastWindowClose
per il thread corrente. In questo modo il ciclo di eventi DispatcherQueue viene chiuso quando tutte le finestre XAML del thread vengono chiuse.
In un'app WinUI Desktop è possibile che il codice venga mantenuto in esecuzione anche dopo la chiusura di tutte le finestre XAML nel thread. A questo scopo, è possibile impostare questa proprietà su OnExplicitShutdown
. Dopo aver chiuso tutte le finestre XAML, il thread continuerà a essere in esecuzione. In questo stato è comunque possibile pianificare il lavoro in DispatcherQueue, eseguire operazioni su altri thread e visualizzare nuove finestre XAML.
Se l'applicazione non chiama Application.Start (come in genere avviene per le applicazioni basate su isole XAML), questa proprietà verrà predefinita su OnExplicitShutdown
. In questo stato, il runtime XAML non esegue alcuna azione per uscire dal ciclo di eventi quando le finestre XAML vengono chiuse.
Quando si usa OnExplicitShutdown
, è necessario uscire dal ciclo di eventi quando si è pronti per il ciclo di eventi su tale thread per uscire. Per uscire correttamente dal ciclo di eventi, chiamare DispatcherQueue.EnqueueEventLoopExit. In alternativa, è possibile chiamare Application.Exit, che causa anche la chiamata del runtime XAML a PostQuitMessage.