[英]what is the best practice to exit an WPF application?
我正在维护一个现有的 C# 应用程序,我注意到以下代码没有按预期工作。
private void Form1_Load(object sender, EventArgs e){
...
if (proc.Length == 0)
{
proc = Process.GetProcessesByName("OpCon");
if (proc.Length == 0)
{
WriteLog("DataloggerService start: no TSS process detected; close;");
this.Close();
}
}
...
}
代码应该在 Close() api 调用后退出。 然而,它仍在继续。
经过一些阅读和研究,我将其修改为
private void Form1_Load(object sender, EventArgs e){
....
if (proc.Length == 0)
{
proc = Process.GetProcessesByName("OpCon");
if (proc.Length == 0)
{
WriteLog("DataloggerService start: no TSS process detected; close;");
this.Dispose();
Environment.Exit(0);
}
}
....
}
它似乎按预期退出。 但是,我不确定这是否是最佳实践?
真的有必要在 Environment.Exit() 之前调用 this.Close() 或 this.Dispose() 吗?
谢谢。
问候,平方
在 WPF 应用程序中,只要在 App.xaml 中指定为 StartupURI 的 MainWindow 关闭,您的应用程序就会自动退出。
尽管如此,如果您想最终处理应用程序的退出,您可以使用以下解决方案。
覆盖 MainWindow 的 onClosing 并手动退出/关闭您的应用程序。
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
// Shutdown the application.
Application.Current.Shutdown();
// OR You can Also go for below logic
// Environment.Exit(0);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.