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

相关推荐
专注VB编程开发20年1 天前
C#内存加载dll和EXE是不是差不多,主要是EXE有入口点
数据库·windows·microsoft·c#
石像鬼₧魂石1 天前
Fail2Ban核心架构学习
linux·学习·ubuntu
逑之1 天前
学习使用typora
学习
走在路上的菜鸟1 天前
Android学Dart学习笔记第十三节 注解
android·笔记·学习·flutter
sszdlbw1 天前
后端springboot框架入门学习--第一篇
java·spring boot·学习
她说彩礼65万1 天前
C# 反射
java·算法·c#
秋深枫叶红1 天前
嵌入式第三十五篇——linux系统编程——exec族函数
linux·前端·学习
hhy_smile1 天前
Android 与 java 设计笔记
android·java·笔记
laocooon5238578861 天前
C#二次开发中简单块的定义与应用
android·数据库·c#
richxu202510011 天前
嵌入式学习之路>单片机核心原理篇>(14) ARM 架构
arm开发·单片机·学习