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#写了一个上位机,由于需要用到延时函数,所以给大家分享一个准确延时函数
大家在网上一定找到过这个延时函数
用是能用,但是有一个致命问题,就是大于一分钟的延时会陷入无限死循环,于是修改了博主师傅修改了一下,修改的原理也很简单,大家可以自己理解领会,以下是修改的源码:
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