Mi GUI basado en escritorio WPF 4.0 (C# .Net 4.0) funciona con la base de datos SQL Server . Cada vez que ejecuto mi aplicación, crea una conexión con SQL Server a través de ADO.NET Entity Framework y, si SQL Server no es accesible, arroja una excepción y muestra MessageBox con notificación.Forma correcta de cerrar la aplicación WPF GUI: GetCurrentProcess(). Kill(), Environment.Exit (0) o this.Shutdown()
Ahora quiero que después de que el usuario lea este mensaje la aplicación se cierre. He encontrado tres maneras de hacer esto:
Process.GetCurrentProcess().Kill();
o
this.Shutdown(); // Application.Current.Shutdown()
o
System.Environment.Exit(0);
Todos ellos trabajan bien y hacer lo que necesito - Cierra la aplicación y matar el proceso de aplicación en Windows Administrador de tareas.
Quiero saber:
- ¿Cuál es la diferencia entre ellos?
- ¿De qué manera cerraré mi aplicación más rápido?
- ¿Qué manera de cerrar la aplicación debo usar?
- ¿Es
Application.Current.Shutdown()
ythis.Shutdown()
de la misma manera para cerrar la aplicación?
¿O tal vez hay otra forma más adecuada de cerrar una aplicación WPF GUI?
Application.Exit()
no funciona para mí, como me sale el error:
The event '
System.Windows.Application.Exit
' can only appear on the left-hand side of += or -=
Gracias.
>> Ad4. Eso depende de lo que sea esto. Llamo a la función de conexión en el constructor App.cs, así que «esto» - es una instancia de la clase de la aplicación. –
Uso Process.GetCurrentProcess(). Kill() cuando la aplicación no puede encontrar un contexto de datos (donde todo está guardado), y el usuario se niega a decirle a la aplicación dónde está. Como no se puede guardar nada, la aplicación simplemente se inmola. – HiredMind