主进程结束时如何结束他相关的所有线程????

sjfriends 2004-12-03 04:11:48
我在主程序中启动了多个线程去进行网络操作,由于网络状况很糟糕,常会有几个线程挂在那儿,这时候用户若关闭主程序,但他的线程却不关闭,还是占用系统的文件资源(锁定文件)导致程序重新启动时无法正常工作(文件被前线程锁定)请问有什么办法在主程序退出时强制结束和他相关的线程呢?
主程序退出代码:Application.Exit();
...全文
330 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengyecsdn 2005-01-26
  • 打赏
  • 举报
回复
一般 线程也受.NET资源保护。主线停止后,从线失去主体,也会被销毁。
不过有时候从线如果涉及一些系统资源或者进行一些独立操作,确实会在一定时间内被保存。

如果确实需要手动终止线程, 可以在启动线程的时候,把用线程对象生成一个哈稀元素。存储在主线管理的哈稀表中,推出时按照哈稀表数据得到线程对象,全部终止!

也可以用其他办法,比如REF进去一个统一规格的字节数组,里边存控制信息,线程定时检索内容,遇到推出指令,就终止。
haoztao 2005-01-26
  • 打赏
  • 举报
回复
System.Diagnostics.Process.GetCurrentProcess().Kill();
  • 打赏
  • 举报
回复
gz
门吹西风 2004-12-06
  • 打赏
  • 举报
回复
生成线程时候用一个表保存起来,不就可以访问了么?
CSTerry 2004-12-06
  • 打赏
  • 举报
回复
在主窗体的closing事件里面加上

System.Diagnostics.Process.GetCurrentProcess().Kill();
indi 2004-12-06
  • 打赏
  • 举报
回复
t.Start();
t.IsBackground = true;
nga96 2004-12-03
  • 打赏
  • 举报
回复
捕捉程序退出事件就可以了
sjfriends 2004-12-03
  • 打赏
  • 举报
回复
不会吧,难道真的没办法啦
jimh 2004-12-03
  • 打赏
  • 举报
回复
线程是一定要手工释放的,可以放到每一个类的析构函数里,这样,在退出程序时再强制释放所有内存就可以了。
Dronven 2004-12-03
  • 打赏
  • 举报
回复
用Close()方法关闭主程序,这样所有它占用的资源就都释放了
sun900 2004-12-03
  • 打赏
  • 举报
回复
System.Environment.Exit(0);

不知道用这个可以不,
我的程序里有线程还有timer
sun900 2004-12-03
  • 打赏
  • 举报
回复
我也想知道,up
sjfriends 2004-12-03
  • 打赏
  • 举报
回复
补充下:由于线程是动态生成的,系统不方便记录线程对象,所以无法用线程的Abort

110,566

社区成员

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

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

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