[C#.net]使用Thread.Sleep界面卡死的問題解決方法


很多初學者在寫C#程序的時候,需要程序等待某個時間,但是又不想用比較繁瑣的線程等操作,因此用Thread.Sleep()函數,但是這個函數在等待過程中會操作界面的卡死,那么,如何能保證既不卡死又能達到等待的功能呢?其實也很簡單,用下面的一段代碼代替Thread.Sleep()函數即可。

      #region 毫秒延時 界面不會卡死
        public static void Delay(int mm)
        {
            DateTime current = DateTime.Now;
            while (current.AddMilliseconds(mm) > DateTime.Now)
            {
                Application.DoEvents();
            }
            return;
        }
        #endregion

Application.DoEvents()的作用:處理所有的當前在消息隊列中的Windows消息

其實doEnvents很簡單,就是暫停一下當前模塊Code,好讓你程序可以響應其它事件、消息……   
響應完其它事之后又回去繼續執行剛才的Code  (允許窗體在忙時響應 UI 輸入)

但是會影響當前代碼的執行效率!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM