c# – 退出WPF应用程序的最佳做法是什么?
发布时间:2020-12-15 18:06:32 所属栏目:百科 来源:网络整理
导读:我正在维护一个现有的C#应用??程序,我注意到以下代码没有按预期工作. private void Form1_Load(object sender,EventArgs e){ ... if (proc.Length == 0) { proc = Process.GetProcessesByName("OpCon"); if (proc.Length == 0) { WriteLog("DataloggerServic
我正在维护一个现有的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); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |