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

相关推荐
im_AMBER13 小时前
算法笔记 18 二分查找
数据结构·笔记·学习·算法
van久13 小时前
.Net Core 学习: Razor Pages -- EF Core简介
学习·.netcore
以孝治家行动14 小时前
学习无止境 行动在进行—以孝治家义工暖心守护独居老人
学习·以孝治家
colus_SEU14 小时前
【编译原理笔记】5.2 SDT Schemes
笔记·编译原理
烛阴14 小时前
C#异常概念与try-catch入门
前端·c#
Radan小哥15 小时前
Docker学习笔记—day011
笔记·学习·docker
星域智链15 小时前
AI加持日常小节日:让每一份心意都精准升温✨
人工智能·科技·学习·生活·节日
xiaoxiaoxiaolll15 小时前
《Light: Science & Applications》基于拓扑能量转移网络的UCNPs,实现65nm超分辨成像与10倍功耗降低
学习
可可苏饼干15 小时前
Ruo-Yi 前后端分离
运维·学习
许长安15 小时前
C++ 多态详解:从静态多态到动态多态
开发语言·c++·经验分享·笔记