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

相关推荐
辰海Coding3 小时前
MiniSpring框架学习笔记-JDBC 访问框架:如何抽取 JDBC 模板并隔离数据库?
java·数据库·笔记·学习·spring
神明不懂浪漫3 小时前
【第二章】HTML2——表格、表单标签
开发语言·经验分享·笔记·html
十月的皮皮3 小时前
C语言学习笔记20260609-字符串反转两种实现方法
c语言·笔记·学习
时代文章3 小时前
GPT-SoVITS 模型测试笔记
笔记·gpt·语音识别
咸鱼翻身小阿橙3 小时前
C# WinForms 控件学习项目
开发语言·学习·c#
GLDbalala3 小时前
GPU PRO 5 - 3.3 Bokeh Effects on the SPU 笔记
笔记
段一凡-华北理工大学3 小时前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
YangYang9YangYan3 小时前
学数据分析对学习编程的价值
学习·数据挖掘·数据分析
ouliten3 小时前
[Triton笔记7]融合注意力 (Fused Attention)
人工智能·笔记·算法
踏着七彩祥云的小丑3 小时前
Go学习第3天:变量+常量+运算符
开发语言·学习·golang·go