如何判断线程是否结束

suanyan 2008-11-10 02:52:55
我在主程序判断线程是否结束
这么写对不对啊
thread.cs里这么写
public bool end;
end= thread.isalive;


主程序里
bool end1;
end1=end;
while(true)
{
if(end1=false)
{
....//线程结束后主程序的任务;
break;
}
}
高手帮我解决一下
...全文
124 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
starrain95 2008-11-10
  • 打赏
  • 举报
回复
在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选。
这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现“线程间操作无效: 从不是创建控件的线程访问它”异常。
为什么.net不让我们跨线程操作控件,这是有好处的。因为如果你的线程多了,那么当两个线程同时尝试将一个控件变为自己需要的状态时,线程的死锁就会发生。但是难道就是因为这个原因,我们就只能让程序卡着么?当然不是,这里教大家一个解决方案:
一个简单的方法是运用CheckForIllegalCrossThreadCalls,在主窗体的构造函数中加上Control.CheckForIllegalCrossThreadCalls = false; 即可

用上述方式,你可以在子线程中调用主程序中后续任务的函数即可.

110,529

社区成员

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

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

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