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

相关推荐
宝桥南山16 分钟前
DeepSeek - 尝试一下GitHub Models中的DeepSeek
microsoft·ai·微软·c#·github·.net
虾球xz1 小时前
CppCon 2015 学习:Concurrency TS Editor’s Report
开发语言·c++·学习
Moonnnn.1 小时前
【电赛培训课程】运算放大器及其应用电路设计
笔记·学习
pop_xiaoli1 小时前
UI学习—cell的复用和自定义cell
学习·ui·ios
rui锐rui2 小时前
大模型学习
学习
YKPG3 小时前
C++学习-入门到精通【14】标准库算法
c++·学习·算法
potender3 小时前
前端基础学习html+css+js
前端·css·学习·html·js
靡樊3 小时前
Socket编程UDP\TCP
网络·c++·学习·tcp/ip·udp
余渔鱼11233 小时前
ajax学习手册
学习·ajax·okhttp
东京老树根4 小时前
SAP学习笔记 - 开发24 - 前端Fiori开发 Filtering(过滤器),Sorting and Grouping(排序和分组)
笔记·学习