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

相关推荐
棒棒的皮皮39 分钟前
【深度学习】YOLO学习教程汇总
深度学习·学习·yolo·计算机视觉
詩不诉卿1 小时前
Zephyr学习之spi flash驱动记录(w25q128)
学习
lkbhua莱克瓦241 小时前
深入理解HTTP协议:从理论到SpringBoot实践
网络·笔记·后端·网络协议·http·javaweb
yanyu-yaya1 小时前
速学兼复习之vue3章节3
前端·javascript·vue.js·学习·前端框架
charlie1145141911 小时前
计算机图形学速通指南笔记(0)
c++·笔记·软件工程·计算机图形学·工程实践
百***78752 小时前
Sora Video2 API国内接入避坑与场景落地:开发者实战笔记
人工智能·笔记·gpt
沉默-_-2 小时前
微信小程序网络请求 wx.request 详解
网络·学习·微信小程序·小程序
日更嵌入式的打工仔2 小时前
RS-485通讯协议
笔记·嵌入式硬件
嗯嗯=2 小时前
STM32单片机学习篇5
stm32·单片机·学习
数据轨迹0012 小时前
ICCV MK-UNet:多核深度可分离卷积医学分割
经验分享·笔记·facebook·oneapi·twitter