C#中的一些延时函数

作者:未风 时间:2023-11-29 04:33:30 

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#写了一个上位机,由于需要用到延时函数,所以给大家分享一个准确延时函数

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

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;
}

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

来源:https://www.cnblogs.com/weifeng123/p/10038443.html

标签:C#,延时,函数
0
投稿

猜你喜欢

  • Android实现图片自动轮播并且支持手势左右无限滑动

    2021-11-04 22:56:46
  • SpringBoot整合WebSocket的客户端和服务端的实现代码

    2023-03-30 04:19:07
  • Spring security登录过程逻辑详解

    2022-09-04 19:58:20
  • Java数组动态增加容量过程解析

    2023-06-07 07:35:24
  • android 仿微信demo——微信消息界面实现(移动端)

    2021-08-01 11:37:26
  • java中String.intern()方法功能介绍

    2023-11-25 23:49:21
  • 详解Java中super的几种用法并与this的区别

    2023-07-12 01:21:23
  • Android实现捕获TextView超链接的方法

    2021-07-03 08:44:04
  • idea插件之mybatis log plugin控制台sql的问题

    2023-05-14 06:45:32
  • Java使用JDBC实现Oracle用户认证的方法详解

    2022-10-06 08:59:36
  • IntelliJ IDEA 常用设置(配置)吐血整理(首次安装必需)

    2021-06-24 15:23:49
  • C# Directory.GetFiles()函数案例详解

    2022-12-10 04:51:02
  • C语言编程C++动态内存分配示例讲解

    2023-11-02 18:00:12
  • Android消息机制Handler的工作过程详解

    2023-07-31 13:49:03
  • C#遍历系统进程的方法

    2021-09-24 15:35:29
  • c#删除指定文件夹中今天之前的文件

    2022-02-26 22:57:27
  • C#操作注册表的方法

    2022-04-14 03:20:36
  • Android实现 EditText输入手机号空格功能

    2021-09-17 00:29:27
  • c# 反射用法及效率对比

    2022-06-11 17:50:19
  • SpringBoot搭配AOP实现自定义注解

    2022-04-07 01:21:59
  • asp之家 软件编程 m.aspxhome.com