社区
C#
帖子详情
跪求高人指导,Winfrom程序中,为什么关闭应用程序后还有进程在运行?
tianliang1
2011-05-18 11:12:06
一个普通的C#编写的Winfrom应用程序。
关闭程序后,在任务管理器中始终还是由一个刚才运行的进程存在。迷惑不解。。。
使用了很多方法。。如:Application.Exit();System.Environment.Exit(System.Environment.ExitCode);this.Dispose();
Application.ExitThread();等都不能让应用程序在关闭,让进程结束...这是为什么?
...全文
543
26
打赏
收藏
跪求高人指导,Winfrom程序中,为什么关闭应用程序后还有进程在运行?
一个普通的C#编写的Winfrom应用程序。 关闭程序后,在任务管理器中始终还是由一个刚才运行的进程存在。迷惑不解。。。 使用了很多方法。。如:Application.Exit();System.Environment.Exit(System.Environment.ExitCode);this.Dispose(); Application.ExitThread();等都不能让应用程序在关闭,让进程结束...这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dengjingjian628
2011-05-19
打赏
举报
回复
不懂啊
tianliang1
2011-05-18
打赏
举报
回复
[Quote=引用 7 楼 qldsrx 的回复:]
进程无法结束,说明有独立的线程在工作,不要怀疑,肯定是有,至于为什么会工作而不停止,得见了代码才知道。一般我们都会用BeginInvoke方法来创建多线程,好处是,系统管理线程的结束,一旦你退出程序,那个线程一定会销毁让你及时退出,如果你自己创建一个线程,并Start()启动线程,那除非线程自己结束或者你收到终止线程,否则你占着进程不让你正常结束进程的。
[/Quote]
你说的意思。我知道。。但是。我为了测试,都还没有去创建那个线程,线程也没有Start。怎么会出现这个问题。。。
tianliang1
2011-05-18
打赏
举报
回复
5楼说的这种,我试过。。。isBackGround =true ,这样还是不能关闭任务列表中的进程。
为什么我的程序名称为:Bunchprogram.exe,但是在进程中看的话确实 Bunchprogram.vshost.exe
不用调试模式。就运行它的EXE文件。。发现这两个都会存在。。关闭后软件后。。Bunchprogram.exe没有了。但是Bunchprogram.vshost.exe依然存在。
代码debug调试模式,只有Bunchprogram.vshost.exe,一直无限存在。。。
isjoe
2011-05-18
打赏
举报
回复
遇到过这个问题,是线程导致的。
设置这个Thread.IsBackground属性,主进程关闭的时候会一同关闭子进程。
或者自己手动控制你的子进程
qldsrx
2011-05-18
打赏
举报
回复
进程无法结束,说明有独立的线程在工作,不要怀疑,肯定是有,至于为什么会工作而不停止,得见了代码才知道。一般我们都会用BeginInvoke方法来创建多线程,好处是,系统管理线程的结束,一旦你退出程序,那个线程一定会销毁让你及时退出,如果你自己创建一个线程,并Start()启动线程,那除非线程自己结束或者你收到终止线程,否则你占着进程不让你正常结束进程的。
mingcsharp
2011-05-18
打赏
举报
回复
你是不用了多线程,当你结束程序的时候要保证所有的线程要退出,
你可以这样if(thd.isAlive)thd.abort()
这样就不会再有多余的线程了
OK?
人工智能算法
2011-05-18
打赏
举报
回复
[Quote=引用楼主 tianliang1 的回复:]
一个普通的C#编写的Winfrom应用程序。
关闭程序后,在任务管理器中始终还是由一个刚才运行的进程存在。迷惑不解。。。
使用了很多方法。。如:Application.Exit();System.Environment.Exit(System.Environment.ExitCode);this.Dispose();
Application.ExitThread();等都不能让应用程……
[/Quote]
200%的线程问题.. 如果开启的线程操作或者保存数据不需要安全性保障的话 就设置为后台线程
程序关闭就自动跟着关闭了.
houyanjun
2011-05-18
打赏
举报
回复
你不用vs调试,直接运行你debug文件中的exe文件,看看这个exe进程会不会去掉?
tianliang1
2011-05-18
打赏
举报
回复
我什么都没有做呀。。。主界面加载事件里我也没有打开了一个Usb设备,关闭程序的时候,我也关闭了对应的usb设备,子界面中的确开了一个线程,可是,我还没有进入那个有线程界面去开始工作。都会存在这个问题。。。甚至,我把打开和关闭usb设备的代码都注释掉。。也存在这个问题。。所以非常不解。。。
houyanjun
2011-05-18
打赏
举报
回复
如果你程序中含有线程,该线程的引用最好放到class内都能访问,当你关闭form时候,把这个线程同时也结束掉。
你试试看
^_^
龍过鸡年
2011-05-18
打赏
举报
回复
是不是有线程在跑?
tianliang1
2011-05-18
打赏
举报
回复
[Quote=引用 18 楼 wxm3630478 的回复:]
引用 9 楼 tianliang1 的回复:
5楼说的这种,我试过。。。isBackGround =true ,这样还是不能关闭任务列表中的进程。
为什么我的程序名称为:Bunchprogram.exe,但是在进程中看的话确实 Bunchprogram.vshost.exe
不用调试模式。就运行它的EXE文件。。发现这两个都会存在。。关闭后软件后。。Bunchprogram.exe没……
[/Quote]
啊。。。原来。。。关VisualStidio就没有那个进程了。。。
突然间明白这句话的意思。。
多谢大哥。。
这么细腻的问题都被你发现了。。无限膜拜。。。
tianliang1
2011-05-18
打赏
举报
回复
[Quote=引用 21 楼 study_hard_01 的回复:]
顶7楼的高人说法。
[/Quote]
很多人或许都不知道是怎么回事吧,就盲目模板。。
tianliang1
2011-05-18
打赏
举报
回复
[Quote=引用 18 楼 wxm3630478 的回复:]
引用 9 楼 tianliang1 的回复:
5楼说的这种,我试过。。。isBackGround =true ,这样还是不能关闭任务列表中的进程。
为什么我的程序名称为:Bunchprogram.exe,但是在进程中看的话确实 Bunchprogram.vshost.exe
不用调试模式。就运行它的EXE文件。。发现这两个都会存在。。关闭后软件后。。Bunchprogram.exe没……
[/Quote]
怎么关 vshost?手动结束进程?
houyanjun
2011-05-18
打赏
举报
回复
[Quote=引用 7 楼 qldsrx 的回复:]
进程无法结束,说明有独立的线程在工作,不要怀疑,肯定是有,至于为什么会工作而不停止,得见了代码才知道。一般我们都会用BeginInvoke方法来创建多线程,好处是,系统管理线程的结束,一旦你退出程序,那个线程一定会销毁让你及时退出,如果你自己创建一个线程,并Start()启动线程,那除非线程自己结束或者你收到终止线程,否则你占着进程不让你正常结束进程的。
[/Quote]
学习到了~标记
study_hard_01
2011-05-18
打赏
举报
回复
顶7楼的高人说法。
上帝的亲哥哥
2011-05-18
打赏
举报
回复
捕捉在窗体事件Form_Closing()退出时
判断 Thread t1.IsLive==true t1.Abort();//注意对象的null值判断,否则会异常
if(t1!=null)
{
}
buptwm
2011-05-18
打赏
举报
回复
[Quote=引用 12 楼 dafei198607 的回复:]
引用 7 楼 qldsrx 的回复:
进程无法结束,说明有独立的线程在工作,不要怀疑,肯定是有,至于为什么会工作而不停止,得见了代码才知道。一般我们都会用BeginInvoke方法来创建多线程,好处是,系统管理线程的结束,一旦你退出程序,那个线程一定会销毁让你及时退出,如果你自己创建一个线程,并Start()启动线程,那除非线程自己结束或者你收到终止线程,否则你占着进程不让你正常结束进程的。
……
[/Quote]
给力,觉得也是这么回事
wxm3630478
2011-05-18
打赏
举报
回复
[Quote=引用 9 楼 tianliang1 的回复:]
5楼说的这种,我试过。。。isBackGround =true ,这样还是不能关闭任务列表中的进程。
为什么我的程序名称为:Bunchprogram.exe,但是在进程中看的话确实 Bunchprogram.vshost.exe
不用调试模式。就运行它的EXE文件。。发现这两个都会存在。。关闭后软件后。。Bunchprogram.exe没有了。但是Bunchprogram.vshost……
[/Quote]
关 VSxxxx 就没啦
龍过鸡年
2011-05-18
打赏
举报
回复
你调用了一个方法? serialPort.ReadLine()?
加载更多回复(6)
C#Winform界面布局设计(左侧菜单)右侧窗口操作
开发语言C#,.net环境下。C#Winform界面布局设计(左侧菜单)右侧窗口操作。以前做ERP设置的自定义控件。很好用。
winform(c#)最全60种非常漂亮界面样式\皮肤(经典)
winform(c#)最全60种非常漂亮界面样式\皮肤(经典)
C#Socket通信实例
此资源是一款
WinFrom
程序
,客户端与服务器端互发数据
198个经典C#WinForm实例源码 超赞的完整版
"198个经典C#WinForm实例源码"包括: 1-窗体技巧 2-控件操作 3-图像操作 4-报表打印 5-系统操作 6-文件处理 7-网络操作 8-数据库操作 9-加密解密 10-硬件读写 11-游戏设计 "超赞的198个经典C#WinForm实例源码.zip " ...
Winform开发全套31个UI组件开源共享]
[Winform开发全套31个UI组件开源共享]
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章