• 您的位置:首页 > 新闻动态 > 技术文章

    C#延时导致UI界面不能刷新的问题

    2021/3/6      点击:

    很多初学者在写C#程序的时候,需要程序等待某个时间,但是又不想用比较繁琐的线程等操作,因此用Thread.Sleep()函数,但是这个函数在等待过程中会操作界面的卡死。那么,如何能应既不卡死又能达到等待的功能呢? 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