c#如何结束子线程

red_2010_05_11 2011-06-06 10:42:39
public void DataAnalyse()
{
for (int i = nDataNOStart; i <= nDataNOEnd; i++)
{
.........
if (StopFlag == true)
{ break;}
}
}
Thread oThread = new Thread(DataAnalyse);
oThread.IsBackground = true;

private void StopAnalys_Click(object sender, EventArgs e)
{

StopFlag = true;
oThread.Abort();
}
点击"stopanalys"按钮界面死掉了,如何终止子线程oThread呢
...全文
215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
red_2010_05_11 2011-06-06
  • 打赏
  • 举报
回复
线程启动了,如果不按"stopanalys"停止按钮,该线程会一直顺利执行完毕,DataAnalyse()
中计算的结果也都顺利保存下来了,但是按"stopanalys"之后,界面却死掉了
isjoe 2011-06-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 red_2010_05_11 的回复:]
public void DataAnalyse()
{
for (int i = nDataNOStart; i <= nDataNOEnd; i++)
{
.........
if (StopFlag == true)
{ break;}
}
}
Thread oThread = new Thread(DataAnalyse);
oThread.IsB……
[/Quote]

界面死掉是for的问题,不是线程引发的问题。高度怀疑你的线程根本没有启动
red_2010_05_11 2011-06-06
  • 打赏
  • 举报
回复
oThread.IsBackground = true;

oThread.Start();
有启动代码的
flyerwing 2011-06-06
  • 打赏
  • 举报
回复
about
终止就好了呀
夏脑 2011-06-06
  • 打赏
  • 举报
回复
代码中好像没有线程的启动代码,没有启动线程,当然要出问题
red_2010_05_11 2011-06-06
  • 打赏
  • 举报
回复
我也想不出问题在哪儿,晕阿
种草德鲁伊 2011-06-06
  • 打赏
  • 举报
回复
上面的代码没看出来有什么问题。
Icedmilk 2011-06-06
  • 打赏
  • 举报
回复
死掉了最好办,调试执行,死掉之后按暂停按钮,看程序断在哪
red_2010_05_11 2011-06-06
  • 打赏
  • 举报
回复
去掉以后界面还是死掉了
小赖赖 2011-06-06
  • 打赏
  • 举报
回复
oThread.Abort();
把这句去掉试试

110,524

社区成员

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

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

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