现在,当用户想要退出我的应用程序时,我会做一些我必须做的事情(即断开与服务器的连接,保存用户数据......)然后我执行以下操作:
使用布尔值退出所有主循环
中止仍在运行的线程(通常是我的服务器轮询线程)
请致电Application.Exit();
这需要几秒钟才能退出,并没有真正的用途(一切都已保存在服务器上,所以我真的不在乎那里发生了什么)
如果我使用它,我立即终止,没有任何我能想到的缺点:
System.Diagnostics.Process.GetCurrentProcess().Kill();
为什么我不会终止我的进程并让CLR放弃AppDomain?
我知道小心处理你的共享资源(IO文件处理程序等)很重要(所以请不要回答:)),但一旦完成,是否真的有理由干净地退出我的应用程序?
杀死进程将意味着最终块将不会被执行,甚至可能甚至不是关键的终结器对象,这可能实际上是关键的,并且导致系统级的资源泄漏.当其他人维护代码时,它也可能导致未来的意外错误,因为他们(或你)将不得不扭曲他们的头,每次他们写一个finally块时都要思考它是否会被执行.