【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 界面停止响应,在延时时间结束后,才弹出子窗体。

相关推荐
claider几秒前
Vim User Manual 阅读笔记 usr_25.txt Editing formatted text 编辑有格式的文本
linux·笔记·vim
承渊政道16 分钟前
ToClaw是什么?一句话:装在云端的OpenClaw
windows·科技·学习·其他·macos·claw
啊我不会诶18 分钟前
Codeforces Round 1083 (Div. 2)vp补题
c++·学习·算法
happymaker062619 分钟前
web前端学习日记——DAY03(盒子模型,flex布局,表格)
前端·学习
左左右右左右摇晃20 分钟前
Java笔记 —— 泛型
java·笔记
徐子元竟然被占了!!20 分钟前
ENSP学习-路由器
网络·学习
·中年程序渣·22 分钟前
Spring AI Alibaba入门学习(七)
学习
左左右右左右摇晃23 分钟前
Java笔记——多态
java·笔记·python
炽烈小老头24 分钟前
【每天学习一点算法 2026/03/21】颜色分类
学习·算法
24白菜头27 分钟前
若依框架Ruoyi-Vue-SpringBoot3部署
前端·javascript·笔记·后端·学习