至于Application.Exit()要写在哪里,一般都是写在主窗体里(是你认为的主窗体,但是对于编译器来说,你最开始的登陆窗体其实才是主窗体).当然如果你想在其他窗体里直接退出整个程序,也可以把这个代码写进别的窗体里去. 总之它一执行,就会关闭所有的窗体.
[quote=引用 22 楼 andywangguanxi 的回复:] 楼主你还是得检查检查自己的程序。正常情况,WinForm程序点击关闭按钮后,进程不会继续驻留那么久。
楼主你还是得检查检查自己的程序。正常情况,WinForm程序点击关闭按钮后,进程不会继续驻留那么久。
一般这种问题就是2个原因造成的 1.有隐藏的窗体没关闭 2.有运行的线程没退出 问题1的解决办法,主窗体Close的时候,执行Application.Exit() 问题2的解决办法,线程设置为BackGround=true后台线程 终极解决办法 Process.GetCurrentProcess.Kill();//杀死当前线程
[quote=引用 4 楼 Z65443344 的回复:] 一般这种问题就是2个原因造成的 1.有隐藏的窗体没关闭 2.有运行的线程没退出 问题1的解决办法,主窗体Close的时候,执行Application.Exit() 问题2的解决办法,线程设置为BackGround=true后台线程 终极解决办法 Process.GetCurrentProcess.Kill();//杀死当前线程
yourthread .IsBackGround = true;
代码写的有问题 而不是说exe需要"释放"... 因为你的程序中使用了多线程..并且就算在程序退出的时候 也没有完全关闭或者销毁. 所以才会出现这样的问题... 解决问题的根本原因就是不要用线程..因为不好管理..用用线程池啦或者异步啦之类的东西... 当然你也可以在main.cs的close里面写application.exit()
正常情况. Application.Exit()后进程肯定就退出了 如果没有,就要查是不是 有工作线程未结束,有循环未正常退出等等
Process.GetCurrentProcess.Kill();//杀死当前进程 如果你用这个办法,那么前面两个解决办法都可以忽略了 不管什么状况,杀死进程它总不会再有了
释放什么啊 你的WinSteel.exe都不能正常退出
Thread查找整个解决方案,肯定创建了线程但是一直没有退出。 找到创建的线程然后和楼上说的一样
110,552
社区成员
642,562
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧