Winform窗体程序延迟函数
前言
Winform 窗体程序开发时,有时需要程序延迟或休眠几秒,如果直接使用 Thread.Sleep() 方法,会造成程序的假死,UI 界面停止响应;
本文中主要介绍一种方法,防止程序假死,在延迟过程中也可响应其他消息。
正文
1、具体代码
csharp
/// <summary>
/// 延迟函数(毫秒级)
/// </summary>
/// <param name="time">需要延迟的时间</param>
public static void Delay(double time)
{
double strart = Environment.TickCount;
while (Math.Abs(Environment.TickCount - strart) < time)
{
Application.DoEvents();
}
}
2、使用示例
-
使用Delay()方法
csharppublic void Add(int a,int b) { Delay(5000); label1.Text = (a + b).ToString(); }
通过上面动图可以看到,在执行主窗体方法后,也可以执行其他操作。
-
使用Thread.Sleep() 方法
csharppublic void Add(int a,int b) { Thread.Sleep(5000); label1.Text = (a + b).ToString(); }
通过动图可以看到在执行主窗体方法时,UI 界面停止响应,在延时时间结束后,才弹出子窗体。