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

相关推荐
AI视觉网奇17 小时前
transformer 优化笔记 持续更新
笔记
Amazing_Cacao1 天前
深度观察 | 从“产区玄学”到“液态战场”:精品巧克力的终极试金石
学习
张同学031 天前
220V 转 12V/5V 电源输入电路设计笔记
笔记·嵌入式硬件·硬件工程
深蓝海拓1 天前
S7-1500PLC学习笔记:MOVE_BLK、MOVE_BLK_VARIANT、BLKMOV的区别
笔记·学习·plc
darkhorsefly1 天前
玩24算的益处
学习·游戏·24算
雨浓YN1 天前
OPC UA 通讯开发笔记 - 基于本地dll文件
windows·笔记
深蓝海拓1 天前
S7-1500学习笔记:用户自定义数据类型(UDT)
笔记·学习·plc
罗罗攀1 天前
PyTorch学习笔记|神经网络的损失函数
人工智能·pytorch·笔记·神经网络·学习
aP8PfmxS21 天前
从零学习Kafka:数据存储
分布式·学习·kafka
AI成长日志1 天前
【算法学习专栏】动态规划基础·中等两题精讲(198.打家劫舍、322.零钱兑换)
学习·算法·动态规划