• C#延時(shí)導(dǎo)致UI界面不能刷新的問(wèn)題

    2021/3/6??????點(diǎn)擊:

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

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


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