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

相关推荐
被遗忘在角落的死小孩22 分钟前
抗量子 Winternitz One Time Signature(OTS) 算法学习
学习·算法·哈希算法
gc_229927 分钟前
C#学习调用OpenMcdf模块解析ole数据的基本用法(2)
c#·ole·openmcdf·offvis软件
浅念-32 分钟前
C++ :类和对象(4)
c语言·开发语言·c++·经验分享·笔记·学习·算法
bugcome_com40 分钟前
C# 变量详解(从入门到掌握)
c#
xixixi777771 小时前
零样本学习 (Zero-Shot Learning, ZSL)补充
人工智能·学习·安全·ai·零样本·模型训练·训练
kylezhao20191 小时前
C#中如何防止序列化文件丢失和损坏
c#
时代的凡人1 小时前
0213晨间笔记
笔记
AI视觉网奇1 小时前
ue 推送直播流 推流 linux 实战
笔记·学习·ue5
Mr YiRan2 小时前
C++语言学习之面向对象
java·c++·学习
kkkkkkkkk_12012 小时前
【强化学习】09周博磊强化学习纲要学习笔记——第五课上
笔记·深度学习·学习·强化学习