现在,当用户想要退出我的应用程序时,我会完成必要的一些工作(例如断开与服务器的连接,保存用户数据...),然后执行以下操作:
- 使用布尔变量退出所有的主循环
- 终止仍在运行的线程(通常是我的服务器轮询线程)
- 友好地调用Application.Exit();
这需要几秒钟的时间才能退出,并且没有任何实际目的(因为所有内容都已经保存在服务器上,所以我不太关心那里发生了什么)。
如果我改为使用以下方式,则可以立即终止而无需考虑任何问题:
System.Diagnostics.Process.GetCurrentProcess().Kill();
为什么我不直接终止进程,让CLR释放AppDomain呢?
我知道认真地处理共享资源(IO文件处理程序等)很重要(所以请不要回答这个问题:)),但是一旦完成后,是否有真正的理由来清洁退出我的应用程序?