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

Posted 孔木木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()导致界面卡死问题的主要内容,如果未能解决你的问题,请参考以下文章

wpf卡死不响应任何交互

wpf中防止界面卡死的写法

多线程编程里的thread.sleep问题

WPF 加强记忆

Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析

winform批量更新数据_长时间的执行会导致界面卡死