Каков предпочтительный метод программного закрытия приложения C# WPF?
Какой предпочтительный метод закрытия приложения C# WPF?
1) вызов Window.Close() в главном окне
2) Вызов Application.Current.Shutdown( 0) в главном окне.
Являются ли эти два семантически эквивалентными или есть тонкое различие, о котором мне нужно знать?
3 ответа
Первый только закрывает окно, в зависимости от вашего Application.ShutdownMode
это может даже не закрыть приложение.
То, как вы выходите из приложения, зависит исключительно от того, что вы хотите сделать, я, например, склонен определять Application.MainWindow
и установить ShutdownMode
в OnMainWindowClose
поэтому все маленькие диалоги не препятствуют закрытию приложения (так как по умолчанию OnLastWindowClose
).
Определенно Window.Close();
Это даст всем остальным окнам возможность корректно завершить работу и завершить их использование. Обратите внимание, что вы должны вызвать это в главном окне, чтобы закрыть все приложение (т.е. this.Close();
из главного окна).
Application.Shutdown
закрывает все открытые окна и удаляет их, также у вас есть возможность вернуть другой код выхода. Так что я бы (обычно) пошел с Application.Shutdown
,