如何终止线程??

lovingkiss 2008-01-23 01:58:23
如何终止没有执行完毕的线程??

JobThread.Abort()
JobThread.Join()

找了一些资料,试验了不少办法,窗体都Dispose了,可线程竟然还在。。。。崩溃。。。
程序Application.exit之后在内存中都无法退出,只能结束进程。。。
...全文
99 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
富莱工作室 2008-01-23
  • 打赏
  • 举报
回复
bool 漏了
富莱工作室 2008-01-23
  • 打赏
  • 举报
回复
我是这样做的

volatile bContinue = true;

........
while(bContinue)
{
DoSomeThing();
}
..........


//退出
bContinue = false;
JobThread.Join();
journeydj 2008-01-23
  • 打赏
  • 举报
回复
那就结束进程
songcan 2008-01-23
  • 打赏
  • 举报
回复
JobThread.Abort()
JobThread.Join()
微软已经不再建议使用
使用标志位的方式
iyori 2008-01-23
  • 打赏
  • 举报
回复
JobThread.IsBackground = true;
将线程设置为后台线程,这样当程序关闭时后台线程自动关闭
wl0320 2008-01-23
  • 打赏
  • 举报
回复

while(true)
{

th .Abort ();
System .Threading .Thread .Sleep (50);
}
但是会出现线程没有终止的情况,把线程设置为后台是个不错的方法。
sjm2003 2008-01-23
  • 打赏
  • 举报
回复
线程运行完后就中指。
做通信的时候,这几天都是和你一样,后来在form_load运行线程时,改成了下面:
thread JobThread=new thread(new threadstart(..));
thread.start();

.....
thread.abort();

好象就冒得那个情况了!
benyouyong 2008-01-23
  • 打赏
  • 举报
回复
我以前也有过这种情况,LZ可能还有其他的连接没有关闭吧。找找看。
tsky0722 2008-01-23
  • 打赏
  • 举报
回复
设置JobThread.IsBackground = true;
把线程设为后台线程
lovingkiss 2008-01-23
  • 打赏
  • 举报
回复
线程正常运行完毕或者线程本身——没有问题,关闭窗体引发的线程间终止就不行了。
tsky0722 2008-01-23
  • 打赏
  • 举报
回复
JobThread.Abort()可以啊
另外可以设置JobThread.IsBackground = true;
wdtclv 2008-01-23
  • 打赏
  • 举报
回复
JobThread.sleep

110,535

社区成员

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

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

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