关闭软件后 进程还存在Windows任务管理器

takpod 2014-12-31 11:07:00
(win7+vs2010)

我运行DEBUG文件夹里的应用,关闭后再启动该软件时提示 "Laser已停止工作"
发现 Windows任务管理器 Laser.exe还在运行,结速它后又可以正常工作了,

但在vs2010里好像不会遇到此问题

我添加了Form1_FormClosed事件 在里面添加一个与系统无关的函数,问题会不会是在这里呢?

请问这个问题如何解决呢?
...全文
607 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-12-31
  • 打赏
  • 举报
回复
在vs里调试的时候,其实启动的不是exe,而是用vs自身的进程,所以你在shift+F5结束调试的时候,vs会自动将资源释放 而如果你没有结束调试,仅仅是关闭窗口,调试器应该也还是处于调试状态才对 进程结束不掉,无非就是2个问题: 1.有隐藏的窗体没有关闭 2.启动了线程没有结束,(没有设置为后台线程)
猴子写代码 2014-12-31
  • 打赏
  • 举报
回复
Form1_FormClosed代码贴出来
於黾 2014-12-31
  • 打赏
  • 举报
回复
引用 3 楼 takpod 的回复:
[quote=引用 2 楼 Z65443344 的回复:] 在vs里调试的时候,其实启动的不是exe,而是用vs自身的进程,所以你在shift+F5结束调试的时候,vs会自动将资源释放 而如果你没有结束调试,仅仅是关闭窗口,调试器应该也还是处于调试状态才对 进程结束不掉,无非就是2个问题: 1.有隐藏的窗体没有关闭 2.启动了线程没有结束,(没有设置为后台线程)
我打开了updclient 在线程里接收 没有关 不知会不会是这个问题[/quote] 应该就是这个问题 你可以在关闭事件里写线程.Abort(); 或者Process.GetCurrentProcess().Kill();//杀死当前进程 或者启动线程的时候设置IsBackGround=true;//设置为后台线程
takpod 2014-12-31
  • 打赏
  • 举报
回复
引用 2 楼 Z65443344 的回复:
在vs里调试的时候,其实启动的不是exe,而是用vs自身的进程,所以你在shift+F5结束调试的时候,vs会自动将资源释放 而如果你没有结束调试,仅仅是关闭窗口,调试器应该也还是处于调试状态才对 进程结束不掉,无非就是2个问题: 1.有隐藏的窗体没有关闭 2.启动了线程没有结束,(没有设置为后台线程)
我打开了updclient 在线程里接收 没有关 不知会不会是这个问题

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧