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

相关推荐
世洋Blog1 分钟前
Unity开发微信小游戏-合理的规划使用YooAsset
unity·c#·微信小游戏
越努力越幸运50839 分钟前
webpack的学习打包工具
前端·学习·webpack
就叫飞六吧1 小时前
“电子公章”:U盾(U-Key)实现身份认证、财务支付思路
网络·笔记
韩曙亮1 小时前
【人工智能】AI 人工智能 技术 学习路径分析 ② ( 深度学习 -> 机器视觉 )
人工智能·深度学习·学习·ai·机器视觉
九千七5261 小时前
sklearn学习(3)数据降维
人工智能·python·学习·机器学习·sklearn
郭庆汝2 小时前
(七)自然语言处理笔记——Ai医生
人工智能·笔记·自然语言处理
czhc11400756632 小时前
Winform笔记1129 checkbox listbox combabox checkedlistbox datapacker
笔记
写点什么呢2 小时前
使用PE安装Win10系统
学习
('-')2 小时前
《从根上理解MySQL是怎样运行的》第十二章学习笔记
笔记·学习·mysql
摆烂积极分子4 小时前
安卓开发学习-安卓版本
android·学习