很多初學者在寫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 輸入)
但是會影響當前代碼的執行效率!!!

