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

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