Right way to close WPF GUI application: GetCurrentProcess().Kill(), Environment.Exit(0) or this.Shutdown()

大憨熊 提交于 2019-11-29 00:52:26
Damian Leszczyński - Vash

Application.Current.Shutdown() is the proper way to shutdown an application. Generally because fire the exit events that you can handle more

Process.GetCurrentProcess().Kill() should be used when you want to kill the application. more

Ad1. The nature of those methods are totally different. The shutdown process can be paused to end some operations, kill force the application to close.

Ad2. Probably Kill() will be the fastest way, but this is something like kernel panic.

Ad3. Shutdown because it fires the close event

Ad4. That depend what this is.

Use Application.Current.Shutdown();

Add ShutdownMode="OnMainWindowClose" in App.xaml

private void ExitMenu_Click(object sender, RoutedEventArgs e)
    {
        Application.Current.Shutdown();
    }

@Damian Leszczyński - Vash's answer pretty much covers the 4 specific questions you asked. For your final question on Application.Exit(), that's an event you can subscribe to, not a method that you can call. It should be used like this:

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
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!