Partager via


Application.DispatcherShutdownMode Propriété

Définition

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 OnExplicitShutdownsur . 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.

S’applique à

Voir aussi