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

相关推荐
小彭律师几秒前
电动汽车充换电设施可调能力聚合评估与预测 - 使用说明文档
笔记
chenyuhao202419 分钟前
链表面试题7之相交链表
数据结构·算法·链表·面试·c#
Pluchon31 分钟前
硅基计划2.0 学习总结 壹 Java初阶
java·开发语言·学习·算法
菜鸟分享录1 小时前
MCP 入门实战:用 C# 开启 AI 新篇章
ai·c#·semantic kernel·mcp
&Cheems1 小时前
ZYNQ笔记(二十一): VDMA HDMI 彩条显示
笔记·嵌入式硬件·fpga开发
忧伤火锅麻辣烫2 小时前
Spark,RDD中的转换算子
笔记·微信
Brookty2 小时前
【Java学习】Lambda表达式
java·学习
孤寂大仙v2 小时前
【Linux笔记】——进程信号的保存
java·linux·笔记
Clockwiseee2 小时前
SSTI记录
运维·服务器·redis·学习
Huazzi.2 小时前
使用SSH协议克隆详细步骤
linux·运维·学习·ssh·编程