【Winform学习笔记(九)】Winform窗体程序延迟函数

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、使用示例

  1. 使用Delay()方法

    csharp 复制代码
            public void Add(int a,int b)
            {
                Delay(5000);
                label1.Text = (a + b).ToString();
            }

    通过上面动图可以看到,在执行主窗体方法后,也可以执行其他操作。

  2. 使用Thread.Sleep() 方法

    csharp 复制代码
            public void Add(int a,int b)
            {
                Thread.Sleep(5000);
                label1.Text = (a + b).ToString();
            }

    通过动图可以看到在执行主窗体方法时,UI 界面停止响应,在延时时间结束后,才弹出子窗体。

相关推荐
Xueqian E2 分钟前
修复shell脚本失败的修改
笔记
剑飞的编程思维6 分钟前
电商系统三类迭代方案评审重点
学习·系统架构·自动化·运维开发·学习方法
ysa0510306 分钟前
迷宫传送[最短路径]
c++·笔记·算法·深度优先
ghie90908 分钟前
C# WinForms 条形码生成器(含保存和打印预览功能)
开发语言·c#
鄭郑11 分钟前
Figma学习笔记--02
笔记·学习·figma
左左右右左右摇晃12 分钟前
Java并发——锁的状态演变
java·开发语言·笔记
蒙塔基的钢蛋儿15 分钟前
告别内存泄露与空指针:用C#与.NET 10开启STM32H7高性能单片机开发新纪元
stm32·c#·.net
ZoeJoy818 分钟前
C# Windows Forms 学生成绩管理器(StudentGradeManager)—— 方法重载、out、ref、params 参数示例
开发语言·c#
zjnlswd21 分钟前
cvpr论文学习《Generative Image Dynamics》
学习
今儿敲了吗43 分钟前
DS-1 传值与传引用
笔记·学习