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

相关推荐
风123456789~10 分钟前
【健康管理】健康管理师-考试范围
笔记·健康管理
Elias不吃糖13 分钟前
整合了c++里面常用的STL及其常用API
开发语言·c++·学习·stl
Hello_Embed42 分钟前
FreeRTOS 入门(四):堆的核心原理
数据结构·笔记·学习·链表·freertos·
先生沉默先1 小时前
NodeJs 学习日志(8):雪花算法生成唯一 ID
javascript·学习·node.js
烧冻鸡翅QAQ2 小时前
考研408笔记——数据结构
数据结构·笔记·考研
lkbhua莱克瓦242 小时前
集合进阶6——TreeMap底层原理
java·开发语言·笔记·学习方法·hashmap
T***u3332 小时前
后端缓存技术学习,Redis实战案例
redis·学习·缓存
Gorgous—l3 小时前
数据结构算法学习:LeetCode热题100-图论篇(岛屿数量、腐烂的橘子、课程表、实现 Trie (前缀树))
数据结构·学习·算法
im_AMBER3 小时前
算法笔记 13 BFS | 图
笔记·学习·算法·广度优先
烤麻辣烫3 小时前
黑马程序员苍穹外卖(新手) DAY3
java·开发语言·spring boot·学习·intellij-idea