51 votes

Bonne façon de fermer l'application d'interface graphique WPF: GetCurrentProcess (). Kill (), Environment.Exit (0) ou this.Shutdown ()

Mon GUI de bureau WPF 4.0 (C# .Net 4.0) programme fonctionne avec SQL Server base de données. Chaque fois quand je lance mon application, il crée une connexion à SQL Server via ADO.NET Entity Framework et si SQL Server n'est pas accessible, il jette exception et montre MessageBox avec la notification.

Maintenant, je veux que lorsque l'utilisateur de lire ce message application va s'arrêter. J'ai trouvé trois façons de le faire:

Process.GetCurrentProcess().Kill();

ou

this.Shutdown(); // Application.Current.Shutdown()

ou

System.Environment.Exit(0);

Tous les beaux travaux et de faire ce dont j'ai besoin - fermer l'application et de tuer l'application du processus dans le Gestionnaire des Tâches de Windows.

Je veux savoir:

  1. Quelle est la différence entre eux?
  2. De quelle manière va se fermer mon application est plus rapide?
  3. Qui moyen de fermer l'application dois-je utiliser?
  4. Est D'Application.Actuel.Shutdown() et ce.Arrêt() de la même manière à fermer l'application?

Ou peut-être il est un autre, plus approprié, de manière à fermer WPF interface graphique de l'application (Application.Exit() ne fonctionne pas pour moi, VS2010 renvoie l'erreur - «L'événement " du Système.De Windows.Application.Sortie " ne peut apparaître sur le côté gauche de l' += ou -=»)?

Merci.

70voto

L'Application.Actuel.Shutdown() est la méthode appropriée pour l'arrêt de l'application. Généralement parce que le feu de la sortie des événements que Vous pouvez gérer plus

Le Processus.Fonction getcurrentprocess().Kill() doit être utilisée lorsque Vous voulez tuer application. plus

Ad1. La nature de ces méthodes sont totalement différentes. Le processus d'arrêt peut être mis en pause à la fin de certaines opérations, tuer force l'application à fermer.

Ad2. Probablement Tuer sera le moyen le plus rapide, mais c'est quelque chose comme la panique du noyau.

Après jc3. L'arrêt parce qu'il déclenche l'événement close

Ad4. Qui dépend this est.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X