2009-11-18 88 views
1

当我启动我的应用程序,并按下我的应用程序上的“X”按钮,或我的退出按钮部署:me.close它不会完全关闭应用程序。就像实例仍在Visual Studio中运行一样,或者如果您转到任务管理器进程,您仍然可以在此处看到它。我怎样才能完全关闭?VB.NET应用程序没有完全关闭

回答

5

一种可能性是,除了运行的主线程外,还有一些线程,而这些线程不是后台线程。一般来说,尝试调试它:从VS附加到它,并使用暂停按钮来打破它,并看看有什么线程,以及他们在做什么。

+0

我的意思是有一个快速简单的方法来解决这个问题,通过结束整个过程而不是所有的挖掘? – lab12 2009-11-19 00:10:46

+1

解决这个问题的唯一方法就是找出问题所在。如果你还有一些线程仍在运行,那么不管这个线程终止进程都会导致数据丢失(例如,如果它正在写入文件的话)以及其他令人讨厌的副作用。也就是说,如果你想要的是_hack_而不是修复,那么主线程上的'Environment.Exit()'会关闭所有正在运行的线程,然后关闭进程。 – 2009-11-19 00:56:05

4

如果您确实有在应用程序内运行的线程,请将IsBackground属性设置为True

Thread.IsBackground Property上MSDN

备注

线程可以是一个后台线程 或前台线程。后台 线程与前台线程 完全相同,但线程不会阻止从 终止进程的背景 线程。一旦所有属于进程的前台线程 已终止 ,公共语言 运行时结束该进程。其余后台线程 已停止并且未完成。

2

“End”关键字就是您要找的。

将它放在FormClosed事件中。