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

相关推荐
石像鬼₧魂石23 分钟前
Windows Server 2003 域控制器靶机搭建与渗透环境配置手册
linux·windows·学习
啥都会点的大秀1 小时前
声学仿真学习笔记
笔记·学习
好奇龙猫1 小时前
【AI学习-comfyUI学习-三十六节-黑森林-融合+扩图工作流-各个部分学习】
人工智能·学习
不会代码的小猴1 小时前
Linux环境编程第三天笔记
linux·笔记
狐572 小时前
2026-01-18-LeetCode刷题笔记-1895-最大的幻方
笔记·算法·leetcode
:mnong2 小时前
通过手写识别数字可视化学习卷积神经网络原理
人工智能·学习·cnn
AI视觉网奇2 小时前
Epic linux 打包。
笔记·学习·ue5
工程师0072 小时前
C#中的AutoUpdater自动更新类
开发语言·c#·自动更新开源库·autoupdate
biuyyyxxx3 小时前
Power Query学习笔记(一)
笔记·学习
曹牧4 小时前
C#:Obsolete
开发语言·c#