日期:2014-05-17  浏览次数:20999 次

在while中调用Thread.Sleep()时,界面假死了
在while中调用Thread.Sleep(3000)时,也就是3秒左右时,界面假死了。这个能解决么?只要能控件一定时间后再进行下一次循环就行了。

while(IsXXX()==false)
{
    Thread.Sleep(3000);
}

------解决方案--------------------
改用Timer组件或后台线程...Windows UI是单元线程,你阻赛UI线程能响应才怪...
------解决方案--------------------
不要把这段代码放到主线程里面去,这样肯定假死的。新启动一个线程来执行这个方法就好了
------解决方案--------------------
调用Sleep方法的是类本身,而不是类的实例。休眠的是该语句所在的线程,而不是其他线程。
------解决方案--------------------
简单修改可以写:
while(IsXXX()==false)
{
    Application.DoEvents();
}
.....//然后继续干你的事。