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

相关推荐
雨浓YN8 小时前
OPC DA 通讯开发笔记
windows·笔记
taoqick8 小时前
rubric系列论文粗读笔记
笔记
航Hang*8 小时前
第2章:进阶Linux系统——第8节:配置与管理MariaDB服务器
linux·运维·服务器·数据库·笔记·学习·mariadb
水深00安东尼8 小时前
C# 鼠标点击小游戏
c#
自小吃多8 小时前
电气安全检测说明书
笔记·安全
波波0078 小时前
每日一题:C#中using的三种用法
开发语言·c#
水蓝烟雨8 小时前
LeetCode刷题笔记:合并两个有序链表(0021)
笔记·leetcode·链表
游乐码8 小时前
c#万物之父
开发语言·c#
AI_零食8 小时前
开源鸿蒙跨平台Flutter开发:极简暗黑风与五行雷达测绘架构
学习·flutter·游戏·华为·开源·交互·harmonyos
xiaoshuaishuai88 小时前
C# Chrome安全机制解析
开发语言·visualstudio·c#