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

相关推荐
醇氧1 分钟前
BC范式(BCNF)学习
学习
今儿敲了吗2 分钟前
python基础学习笔记第八章——异常
笔记·python·学习
朱一头zcy9 分钟前
Linux系列04:简单理解inode、硬链接、软链接、挂载的概念
linux·笔记
楼田莉子13 分钟前
C++数据结构:基数树
开发语言·数据结构·c++·学习
L16247616 分钟前
Nginx+Keepalived 高可用集群实战笔记
运维·笔记·nginx
无心水20 分钟前
【时间利器】5、多语言时间处理实战:Go/C#/Rust/Ruby统一规范
golang·rust·c#·时间·分布式架构·openclaw·openclaw变现
_李小白20 分钟前
【OSG学习笔记】Day 3: OSG 实用工具
笔记·图形渲染
observe1011 小时前
ARM学习
学习
H_老邪1 小时前
Docker 学习之路-从入门到放弃:1
学习·docker·eureka
Java面试题总结1 小时前
新人笔记之模板方法模式
java·笔记·模板方法模式