为什么点了关闭,线程依然存在。

yishuihepan003 2010-09-28 07:59:38
在下做了一款软件,框架已经基本形成,可以运行,但存在的问题是:

当点击关闭按钮,关闭主窗口后,系统中的进程依然存在,好像并没用释放掉占用的资源。必须启动资源管理器关闭。

请问这是什么原因造成的?应该怎样才能点击关闭按钮,即关闭了软件,又释放掉了资源,关闭系统中的进程。
...全文
239 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2010-10-08
  • 打赏
  • 举报
回复
对了,退出应用的时候应该把所有的子线程都退出。

try
{
workThread.Abort();
}
catch()
{

}
cstester 2010-09-30
  • 打赏
  • 举报
回复
在你program.cs内,Main方法里 实例化的窗体并没有释放资源。在程序想要达到退出效果的窗体里
onFormClosing时间里,定义Application.Exit(); 释放当前应用程序的所有资源。
飞扬人生 2010-09-30
  • 打赏
  • 举报
回复
呵呵,如上所述,kill下,先检测线程存在不,存在Process.GetCurrentProcess().Kill();
yinrongg 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
Process.GetCurrentProcess().Kill();
Environment.Exit(0)方法,调用此方法,应用程序即强制退出。
application.exit()推出应用程序,并不对后台线程和资源进行强制回收
[/Quote]+1
ihxzz 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]
Environment.Exit(0);
[/Quote]

这个可以立即退出。
kj289907795 2010-09-30
  • 打赏
  • 举报
回复
是啊
hassss2008 2010-09-30
  • 打赏
  • 举报
回复
应该会关了呀,你可以再看看代码
headsonlkc 2010-09-30
  • 打赏
  • 举报
回复
Thread.Sleep(1000);
System.Environment.Exit(0);
Application.Exit();
guhonglangzi 2010-09-30
  • 打赏
  • 举报
回复
谢谢你们,国庆节快乐。。。
guhonglangzi 2010-09-29
  • 打赏
  • 举报
回复
消化,吸收,学习了。。。
swalp 2010-09-29
  • 打赏
  • 举报
回复
最笨的方法,在窗体关闭事件中写上this.dispose()
xiaojia19850414 2010-09-29
  • 打赏
  • 举报
回复
学习一下。
andy1118 2010-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyazhe 的回复:]
Environment.Exit(0);
[/Quote]

精辟

tongfeng1981 2010-09-29
  • 打赏
  • 举报
回复
飘过了, 学习了
机器人 2010-09-28
  • 打赏
  • 举报
回复
资源指的是程序运行中分配的内存。

.NET使用的GC回收策略,就算退出程序也不会立即释放资源的。

bourbon1795 2010-09-28
  • 打赏
  • 举报
回复
线程多了就是这样。你等待下,看看会不会自己关掉。
程序没问题的话,线程运行完了都自己释放的。
WWeiLin 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wuyq11 的回复:]
Process.GetCurrentProcess().Kill();
Environment.Exit(0)方法,调用此方法,应用程序即强制退出。
application.exit()推出应用程序,并不对后台线程和资源进行强制回收
[/Quote]

呃.. 这里的资源只什么啊!? 不是程序一退,所有资源就释放了!?!?
呃,菜鸟发问,请包涵..
WWeiLin 2010-09-28
  • 打赏
  • 举报
回复
Application.Exit();
不应该啊!? 关闭了程序的前台进程.. 后台进程也随之释放..

学习.. 楼主找到时什么原因后回帖说下啊..
wuyq11 2010-09-28
  • 打赏
  • 举报
回复
Process.GetCurrentProcess().Kill();
Environment.Exit(0)方法,调用此方法,应用程序即强制退出。
application.exit()推出应用程序,并不对后台线程和资源进行强制回收
加载更多回复(7)

111,129

社区成员

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

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

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