Application.DispatcherShutdownMode Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui spécifie si la boucle d’événement DispatcherQueue se ferme lorsque toutes les fenêtres XAML d’un thread sont fermées.
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
Valeur de propriété
Valeur d’énumération qui spécifie si la boucle d’événement DispatcherQueue se ferme lorsque toutes les fenêtres XAML sur un thread sont fermées. Consultez Remarques pour connaître le comportement par défaut.
Remarques
Il s’agit d’une propriété par thread. Lorsque vous la définissez, la propriété change uniquement pour le thread actuel. Il est possible d’avoir des valeurs différentes pour cette propriété sur différents threads dans votre application.
Vous pouvez définir cette propriété à tout moment. Le runtime XAML lit la propriété chaque fois que la dernière fenêtre d’un thread est fermée.
Lorsque la méthode Application.Start est appelée (comme au démarrage pour les applications de bureau WinUI), le runtime XAML définit DispatcherShutdownMode
sur OnLastWindowClose
pour le thread actuel. Cela entraîne la fermeture de la boucle d’événements de DispatcherQueue lorsque toutes les fenêtres XAML sur le thread sont fermées.
Dans une application de bureau WinUI, vous souhaiterez peut-être que votre code continue à s’exécuter même après la fermeture de toutes les fenêtres XAML sur le thread. Pour ce faire, vous pouvez définir cette propriété sur OnExplicitShutdown
. Ensuite, une fois toutes les fenêtres XAML fermées, le thread continue à s’exécuter. Dans cet état, vous pouvez toujours planifier le travail sur DispatcherQueue, exécuter le travail sur d’autres threads et afficher de nouvelles fenêtres XAML.
Si l’application n’appelle pas Application.Start (comme c’est généralement le cas pour les applications XAML Islands), cette propriété est définie par défaut OnExplicitShutdown
sur . Dans cet état, le runtime XAML n’effectue aucune action pour quitter la boucle d’événements lorsque les fenêtres XAML sont fermées.
Lorsque vous utilisez OnExplicitShutdown
, vous devez quitter la boucle d’événements vous-même lorsque vous êtes prêt à quitter la boucle d’événements sur ce thread. Pour quitter correctement la boucle d’événements, appelez DispatcherQueue.EnqueueEventLoopExit. Vous pouvez également appeler Application.Exit, ce qui entraîne également l’appel de PostQuitMessage par le runtime XAML.