• C#延時導致UI界面不能刷新的問題

    2021/3/6??????點擊:

    很多初學者在寫C#程序的時候,需要程序等待某個時間,但是又不想用比較繁瑣的線程等操作,因此用Thread.Sleep()函數(shù),但是這個函數(shù)在等待過程中會操作界面的卡死。那么,如何能應(yīng)既不卡死又能達到等待的功能呢? Thread.Sleep()導致系統(tǒng)程序事件不能同步執(zhí)行。

    其實也很簡單,用下面的段代碼代替Thread.Sleep()函數(shù)即可。


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