Каков предпочтительный метод программного закрытия приложения 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,

Другие вопросы по тегам