当前位置:  开发笔记 > 运维 > 正文

为什么我不应该使用Process.GetCurrentProcess().Kill()来退出我的WinForm应用程序?

如何解决《为什么我不应该使用Process.GetCurrentProcess().Kill()来退出我的WinForm应用程序?》经验,为你挑选了1个好方法。

现在,当用户想要退出我的应用程序时,我会做一些我必须做的事情(即断开与服务器的连接,保存用户数据......)然后我执行以下操作:

使用布尔值退出所有主循环

中止仍在运行的线程(通常是我的服务器轮询线程)

请致电Application.Exit();

这需要几秒钟才能退出,并没有真正的用途(一切都已保存在服务器上,所以我真的不在乎那里发生了什么)

如果我使用它,我立即终止,没有任何我能想到的缺点:

 System.Diagnostics.Process.GetCurrentProcess().Kill();

为什么我不会终止我的进程并让CLR放弃AppDomain?

我知道小心处理你的共享资源(IO文件处理程序等)很重要(所以请不要回答:)),但一旦完成,是否真的有理由干净地退出我的应用程序?



1> Hosam Aly..:

杀死进程将意味着最终块将不会被执行,甚至可能甚至不是关键的终结器对象,这可能实际上是关键的,并且导致系统级的资源泄漏.当其他人维护代码时,它也可能导致未来的意外错误,因为他们(或你)将不得不扭曲他们的头,每次他们写一个finally块时都要思考它是否会被执行.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有