C#中的一些延时函数

 更新时间:2022年06月09日 10:13:30   作者:未风  
这篇文章主要介绍了C#中的一些延时函数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C#一些延时函数

sleep延时方法

System.Threading.Thread.Sleep(1000); //毫秒

实现的是非独占性延时函数,延时过时中界面仍可响应消息:

public static void Delay(int milliSecond)
{
    int start = Environment.TickCount;
    while (Math.Abs(Environment.TickCount - start) < milliSecond)//毫秒
    {
        Application.DoEvents();//可执行某无聊的操作
    }
}

关于Math.Abs()

Environment.TickCount,内部API是用DWORD GetTickCount()来实现的,该属性的值从系统计时器派生,并以 32 位有符号整数的形式存储。

因此,如果系统连续运行,TickCount 将在约 24.9 天内从零递增至 Int32. MaxValue ,然后跳至 Int32. MinValue (这是一个负数),再在接下来的 24.9 天内递增至零。

DWORD是无符号的,而 Environment.TickCount属性返回的值是有符号的,所以有一半的值用负数表示!

C#准确延时函数

最近一段时间用C#写了一个上位机,由于需要用到延时函数,所以给大家分享一个准确延时函数

大家在网上一定找到过这个延时函数

用是能用,但是有一个致命问题,就是大于一分钟的延时会陷入无限死循环,于是修改了博主师傅修改了一下,修改的原理也很简单,大家可以自己理解领会,以下是修改的源码:

public bool Dalay(int ms)
{
    DateTime now = DateTime.Now;
    int s;
    do
    {
        TimeSpan spand = DateTime.Now - now;
        s = spand.Minutes * 60 * 1000 + spand.Seconds * 1000 + spand.Milliseconds;
        Application.DoEvents();
    }
    while (s < ms);
    return true;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • C#读取与写入txt文件内容的实现方法

    C#读取与写入txt文件内容的实现方法

    在 C# 中读取和写入文本文件内容是一个常见的任务,本文主要介绍了使用几种不同方法读取和写入文本文件的示例,并通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-08-08
  • 基于WPF实现面包屑控件的示例代码

    基于WPF实现面包屑控件的示例代码

    这篇文章主要为大家详细介绍了如何基于WPF实现简单的面包屑控件,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-05-05
  • 利用C#实现AOP常见的几种方法详解

    利用C#实现AOP常见的几种方法详解

    AOP面向切面编程(Aspect Oriented Programming),是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。下面这篇文章主要给大家介绍了关于利用C#实现AOP常见的几种方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • C#实现FTP文件下载及超时控制详解

    C#实现FTP文件下载及超时控制详解

    这篇文章主要为大家详细介绍了C#实现FTP文件下载及超时控制的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C#加载嵌入到资源的非托管dll

    C#加载嵌入到资源的非托管dll

    很多朋友遇到过这样一个问题需要加载非win32的非托管dll,纠结该怎么操作呢,下面通过代码给大家介绍下C#加载嵌入到资源的非托管dll的方法,感兴趣的朋友一起看看吧
    2021-05-05
  • 3种C# 加载Word的方法

    3种C# 加载Word的方法

    本次经验内容分享通过C#程序来加载Word文档的3种不同方法。分别是:加载本地Word文档、以只读模式加载Word文档、从流加载Word 想具体了解的小伙伴请参考下文
    2021-09-09
  • 基于C#实现在图片上绘制文字

    基于C#实现在图片上绘制文字

    这篇文章主要为大家详细介绍了如何利用C#实现在图片上绘制文字的效果,文中的示例代码讲解详细,对我们学习C#有一定的帮助,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-12-12
  • C#实现注册码的方法

    C#实现注册码的方法

    这篇文章主要介绍了C#实现注册码的方法,可实现C#生成软件注册码的相关功能,涉及C#硬件操作及随机数操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-08-08
  • 使用C#表达式树实现对象的深克隆(实例详解)

    使用C#表达式树实现对象的深克隆(实例详解)

    C# 的表达式树提供了一个强大的机制,可以将代码以数据结构的形式表示出来,使得代码可以在运行时进行检查、修改或执行,这为动态查询生成、代码优化和动态编程提供了很多可能性,这篇文章主要介绍了使用C#强大的表达式树实现对象的深克隆,需要的朋友可以参考下
    2024-05-05
  • C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库

    C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库

    这篇文章介绍了C#使用Oracle.ManagedDataAccess.dll组件连接Oracle数据库的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05

最新评论