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

相关推荐
on_pluto_2 小时前
论文Heterogeneous Graph Transformer(HGT)阅读笔记
论文阅读·人工智能·笔记·深度学习·学习方法
Gorgous—l2 小时前
数据结构算法学习:LeetCode热题100-贪心算法篇(数组中的第K个最大元素、 前 K 个高频元素、数据流的中位数)
数据结构·学习·算法
哎呦 你干嘛~2 小时前
tcpip通讯
学习
小曹要微笑2 小时前
C#中什么是类
开发语言·c#·面向对象·
HelloWorld1024!2 小时前
Pytorch1 PyTorch 官方 QuickStart 超详细笔记|
人工智能·pytorch·笔记
小程故事多_802 小时前
OpenClaw 实战|多 Agent 打通小红书:数据收集 + 笔记编写 + 自动发布一步到位
人工智能·笔记·aigc
日更嵌入式的打工仔2 小时前
DPU浅析
笔记
Dxy12393102162 小时前
PyTorch训练的艺术:精通ReduceLROnPlateau学习率调度器
人工智能·pytorch·学习
uwvwko2 小时前
openclaw 笔记及注意事项
笔记·openclaw
炽烈小老头2 小时前
【 每天学习一点算法 2026/03/11】从前序与中序遍历序列构造二叉树
学习·算法