主线程休眠Thread.Sleep(3000);
很多初学者在写C#程序的时候,需要程序等待某个时间,但是又不想用比较繁琐的线程等操作,因此用Thread.Sleep()函数,但是这个函数在等待过程中会操作界面的卡死,那么,如何能保证既不卡死又能达到等待的功能呢?其实也很简单,用下面的一段代码代替Thread.Sleep()函数即可。
public static void Delay(int mm)
{
DateTime current = DateTime.Now;
while (current.AddMilliseconds(mm) > DateTime.Now)
{
Application.DoEvents();
}
return;
}
//同样可以让主线程休眠,但界面不会假死
Delay(3000);
//透明色的加载等待GIF图片


本文介绍了一种在C#中实现非阻塞延时的方法,避免了使用Thread.Sleep()导致的界面卡顿问题。通过自定义Delay函数,利用DateTime和Application.DoEvents(),实现了既能等待指定时间,又不冻结UI的解决方案。
757

被折叠的 条评论
为什么被折叠?



