当前位置: 代码迷 >> C# >> 请问一下:怎么释放进程?
  详细解决方案

请问一下:怎么释放进程?

热度:97   发布时间:2016-05-05 03:29:50.0
请教一下:如何释放进程???
VS 2010 开发WinForm(c#)

我写了一个小软件(WinSteel),打开软件后,会出现3个进程,如下图(WinSteel.exe):


当我关闭软件后,进程中的WinSteel.exe还在,不会消失!

请问:是不是需要些代码来释放这些进程??代码怎么写??


------解决思路----------------------
正常情况. Application.Exit()后进程肯定就退出了
如果没有,就要查是不是
有工作线程未结束,有循环未正常退出等等
------解决思路----------------------
一般这种问题就是2个原因造成的
1.有隐藏的窗体没关闭
2.有运行的线程没退出

问题1的解决办法,主窗体Close的时候,执行Application.Exit()
问题2的解决办法,线程设置为BackGround=true后台线程

终极解决办法
Process.GetCurrentProcess.Kill();//杀死当前线程
------解决思路----------------------
Process.GetCurrentProcess.Kill();//杀死当前进程

如果你用这个办法,那么前面两个解决办法都可以忽略了
不管什么状况,杀死进程它总不会再有了
------解决思路----------------------
代码写的有问题 而不是说exe需要"释放"...

因为你的程序中使用了多线程..并且就算在程序退出的时候 也没有完全关闭或者销毁.

所以才会出现这样的问题...

解决问题的根本原因就是不要用线程..因为不好管理..用用线程池啦或者异步啦之类的东西...

当然你也可以在main.cs的close里面写application.exit()
------解决思路----------------------
引用:
Quote: 引用:

一般这种问题就是2个原因造成的
1.有隐藏的窗体没关闭
2.有运行的线程没退出

问题1的解决办法,主窗体Close的时候,执行Application.Exit()
问题2的解决办法,线程设置为BackGround=true后台线程

终极解决办法
Process.GetCurrentProcess.Kill();//杀死当前线程


线程设置为BackGround=true,这个在哪里设置??没找到啊

启动thread之前设置

yourthread .IsBackGround = true;

------解决思路----------------------
Thread查找整个解决方案,肯定创建了线程但是一直没有退出。
找到创建的线程然后和楼上说的一样
------解决思路----------------------
如果没有前台线程的话,就按你修改的方法,用application.exit()
------解决思路----------------------
引用:
一般这种问题就是2个原因造成的
1.有隐藏的窗体没关闭
2.有运行的线程没退出

问题1的解决办法,主窗体Close的时候,执行Application.Exit()
问题2的解决办法,线程设置为BackGround=true后台线程

终极解决办法
Process.GetCurrentProcess.Kill();//杀死当前线程


Application.Exit()会释放当前进程的所有前台线程和占用的资源。
线程的属性IsBackGround=true用于设置是否是后台线程。
MDI子窗体,应该设置parent属性,指明是附属于哪个父窗体。

(后台线程的意思是:程序退出后继续运行,这就是后台运行的意思。
相对的前台线程,即窗体或交互界面释放前会结束前台线程。
还有一个守护线程,守护线程可以理解为就是一直在后台运行的线程,默默守护人在塔在。。)
------解决思路----------------------
引用:
Quote: 引用:

楼主你还是得检查检查自己的程序。正常情况,WinForm程序点击关闭按钮后,进程不会继续驻留那么久。


登录窗口,如果登录成功,那我用的代码是 this.Hide() ,会不会是这个原因??

如果用this.Close() ,那么主窗口不会显示出来,程序直接就关闭了,所以我用了this.Hide()

是的.
我前面已经说过了,只有2种可能
1.有窗口没关闭(被你hide了)
2.有线程没退出

既然你没用线程,那就是窗口的问题了

窗口的问题,加上Application.Exit()就会自动帮你关掉所有的窗体
  相关解决方案