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

相关推荐
式5162 分钟前
VLLM架构学习(一)VLLM是什么、VLLM的原理
学习·vllm
成长的小牛23316 分钟前
MCP 学习笔记
笔记·学习·ai
wearegogog12320 分钟前
C# Modbus 协议实现
开发语言·c#
深蓝轨迹21 分钟前
SpringBoot YAML配置文件全解析:语法+读取+高级用法
java·spring boot·后端·学习
困死,根本不会30 分钟前
蓝桥杯python备赛笔记之(十)数论基础 & 日期问题
笔记·python·蓝桥杯
深蓝轨迹33 分钟前
乐观锁 vs 悲观锁 含面试模板
java·spring boot·笔记·后端·学习·mysql·面试
ADHD多动联盟35 分钟前
如何通过运动干预方案提升孩子的社交技能与学习能力?
学习·学习方法·玩游戏
somi743 分钟前
51单片机-01-基础概念
单片机·嵌入式硬件·学习·51单片机
晓晓hh1 小时前
JavaSe学习——基础
java·开发语言·学习
峥嵘life1 小时前
Android16 【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习