我在主程序判断线程是否结束
这么写对不对啊
thread.cs里这么写
public bool end;
end= thread.isalive;
主程序里
bool end1;
end1=end;
while(true)
{
if(end1=false)
{
....//线程结束后主程序的任务;
break;
}
}
高手帮我解决一下
这么写对不对啊
thread.cs里这么写
public bool end;
end= thread.isalive;
主程序里
bool end1;
end1=end;
while(true)
{
if(end1=false)
{
....//线程结束后主程序的任务;
break;
}
}
高手帮我解决一下
这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现“线程间操作无效: 从不是创建控件的线程访问它”异常。
为什么.net不让我们跨线程操作控件,这是有好处的。因为如果你的线程多了,那么当两个线程同时尝试将一个控件变为自己需要的状态时,线程的死锁就会发生。但是难道就是因为这个原因,我们就只能让程序卡着么?当然不是,这里教大家一个解决方案:
一个简单的方法是运用CheckForIllegalCrossThreadCalls,在主窗体的构造函数中加上Control.CheckForIllegalCrossThreadCalls = false; 即可用上述方式,你可以在子线程中调用主程序中后续任务的函数即可.