1. 程式人生 > >Thread.Sleep()導致界面卡死問題

Thread.Sleep()導致界面卡死問題

color cati sleep blog col logs 資料 開發 關閉

最近開發一個界面,為了實現界面延時自動關閉,加了一句代碼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()導致界面卡死問題