经常为了防止用户非正常退出系统,在窗体的FormClosing的事件中设置E.Cancel=true。
但这样的结果是,如果当用户想真正退出的时候,却真正无法退出了。解决的办法,原来一直用一个是否可以退出的变量来进行分析,比如我们可以设置IsCanExit,当程序判断可以退出时,把IsCanExit设置成true,这样就可以退出了,但这样仍然很麻烦。
而且,这样的情况在使用多线程编程时也会遇到。当时使用Application.Exit或Apllication.ExitThread,都不能彻底退出系统,虽然程序界面已经退出,但是在任务管理器里仍然在运行这个进程。
这表明,使用Application.Exit或Apllication.ExitThread,使用之后不能完全退出。
后来发现,除了以上两个退出的方式之外,还有一个Environment.Exit,调用这个方法可以实现完全退出系统。
到此时,我们不难发现,原来即使我们的程序不能正常退出了,但是在调试时,点击Vs2005里的停止按钮,一下就结束了,在任务管理器里也看不到了,此时我们调用的Environment.Exit方法,应该与Vs2005中的停止按钮具有相同效果。