现在,当用户想要退出我的应用程序时,我必须执行一些操作(即与服务器断开连接、保存用户数据...),然后执行以下操作:
- 使用布尔值退出所有主循环
- 中止仍在运行的线程(通常是我的服务器轮询线程)
- 请调用Application.Exit();
这需要几秒钟才能退出,并且没有任何实际目的(所有内容都已经保存在服务器上,所以我并不关心那里发生了什么)
如果我使用它,我会立即终止,没有任何我能想到的缺点:
System.Diagnostics.Process.GetCurrentProcess().Kill();
为什么我不直接终止我的进程并让 CLR 删除 AppDomain ?
我知道仔细处理你的共享资源(IO 文件处理程序等)很重要(所以请不要回答这个问题:)),但是一旦完成,是否有真正的理由干净地退出我的应用程序?
杀死进程意味着finally块将不会被执行,甚至可能不会被执行关键终结器对象 http://msdn.microsoft.com/en-us/library/system.runtime.constrainedexecution.criticalfinalizerobject.aspx,这实际上可能很关键,并导致系统级别的资源泄漏。当其他人维护代码时,它还可能在将来导致意想不到的错误,因为他们(或你)将不得不绞尽脑汁,每次编写finally块时都必须考虑它是否会被执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)