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

相关推荐
薛定e的猫咪21 分钟前
Claude Code 完整学习手册:安装配置、CCR、MCP、插件与 Superpowers开发框架
学习
雾山大叔42 分钟前
多会话浏览器串口调试助手
经验分享·笔记·学习
小凯123452 小时前
pytest框架-详解(学习pytest框架这一篇就够了)
python·学习·pytest
桂花很香,旭很美2 小时前
Anthropic Agent 工程实战笔记 · 延伸阅读
笔记·架构·agent
大空大地20262 小时前
面向对象编程
c#
今儿敲了吗2 小时前
29| 高考志愿
c++·笔记·学习·算法
山岚的运维笔记3 小时前
SQL Server笔记 -- 第85章:查询提示
数据库·笔记·sql·microsoft·sqlserver
浅念-3 小时前
C++ 模板进阶
开发语言·数据结构·c++·经验分享·笔记·学习·模版
mightbxg5 小时前
【学习一下】深入理解交叉熵
人工智能·学习·机器学习
weixin_458872615 小时前
东华复试OJ每日3题打卡·复盘100~102
学习