首页 > 代码库 > Thread.Sleep()导致界面卡死问题

Thread.Sleep()导致界面卡死问题

最近开发一个界面,为了实现界面延时自动关闭,加了一句代码Thread.Sleep(2000)。开发过程中未发现问题。后来测试发现,如果这个时候点击界面,会导致系统崩溃。

于是找了一些资料,得到如下解决办法:

Thread t = new Thread(o => Thread.Sleep(2000));
t.Start(this);
while (t.IsAlive)
{
//防止UI假死
Application.DoEvents();
}
Application.DoEvents()方法本身就是处理Windows消息,防止界面卡死。

Thread.Sleep()导致界面卡死问题