Bonne façon de fermer l'application GUI WPF: GetCurrentProcess () Kill (), Environment.Exit (0) ou this.Shutdown ().
-
28-09-2019 - |
Question
Mon interface desktop-base WPF 4.0 (C # .Net 4.0) programme fonctionne avec la base de données SQL Server. Chaque fois que je lance mon application, il crée une connexion à SQL Server via ADO.NET Entity Framework et si SQL Server est accessible pas une exception et jette des spectacles MessageBox
avec notification.
Maintenant, je veux que, après lecture de cette application de messagerie utilisateur arrêté. J'ai trouvé trois façons de le faire:
Process.GetCurrentProcess().Kill();
ou
this.Shutdown(); // Application.Current.Shutdown()
ou
System.Environment.Exit(0);
Toutes les fins de travail et faire ce que je dois -. Et fermer l'application du processus de l'application kill dans le Gestionnaire des tâches de Windows
Je veux savoir:
- Quelle est la différence entre eux?
- Dans quel sens va fermer mon application plus rapidement?
- Quelle façon de fermer l'application dois-je utiliser?
- est
Application.Current.Shutdown()
etthis.Shutdown()
la même manière à fermer l'application?
Ou peut-être il y a un autre, plus approprié, moyen de fermer une application GUI WPF?
Application.Exit()
ne fonctionne pas pour moi que je reçois l'erreur:
L'événement «
System.Windows.Application.Exit
» ne peut apparaître sur le côté gauche de + = ou - =
Merci.
La solution
Application.Current.Shutdown()
est la bonne façon d'arrêter une des applications. En général, parce que le feu les événements de sortie que vous pouvez gérer plus
Process.GetCurrentProcess().Kill()
doit être utilisé lorsque vous voulez tuer l'application. plus
Ad1. La nature de ces méthodes sont totalement différentes. Le processus d'arrêt peut être mis en pause pour mettre fin à certaines opérations, tuer forcer l'application à proximité.
Ad2. Probablement Kill()
sera le plus rapide, mais cela est quelque chose comme la panique du noyau.
Ad3. Arrêt car il déclenche l'événement proche
Annonce4. Cela dépend ce que this
est.
Autres conseils
Utilisation Application.Current.Shutdown ();
Ajouter ShutdownMode = "OnMainWindowClose" App.xaml
private void ExitMenu_Click(object sender, RoutedEventArgs e)
{
Application.Current.Shutdown();
}
@Damian Leszczynski - La réponse de Vash couvre à peu près les 4 questions spécifiques que vous demandé. Pour votre dernière question Application.Exit()
, qui est un événement auquel vous pouvez vous abonner à, pas une méthode que vous pouvez appeler. Il devrait être utilisé comme ceci:
Application.Current.Exit += CurrentOnExit;
//this.Exit += CurrentOnExit; would also work if you're in your main application class
...
private void CurrentOnExit(object sender, ExitEventArgs exitEventArgs)
{
//do some final stuff here before the app shuts down
}