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

相关推荐
旖旎夜光10 小时前
Linux(4)(下)
linux·学习
敲敲了个代码13 小时前
从硬编码到 Schema 推断:前端表单开发的工程化转型
前端·javascript·vue.js·学习·面试·职场和发展·前端框架
沐风听雨_A15 小时前
雄迈IP摄像头配置笔记
笔记
阿蒙Amon15 小时前
C#每日面试题-重写和重载的区别
开发语言·c#
我命由我1234516 小时前
SVG - SVG 引入(SVG 概述、SVG 基本使用、SVG 使用 CSS、SVG 使用 JavaScript、SVG 实例实操)
开发语言·前端·javascript·css·学习·ecmascript·学习方法
阿蒙Amon16 小时前
C#每日面试题-委托和事件的区别
java·开发语言·c#
沐风听雨_A17 小时前
有人串口转Wifi模块配置笔记
笔记
bjzhang7517 小时前
C#操作SQLite数据库
数据库·sqlite·c#
Fern_blog18 小时前
鸿蒙学习之路
学习
小智RE0-走在路上18 小时前
Python学习笔记(11) --数据可视化
笔记·python·学习