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#基础 延迟加载介绍与实例
延迟加载(lazy loading) 设计模式是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据(读取属性值)的时候,才真正执行数据加载操作. 为了便于理解, 我们来建立一个场景, 假设我们要构造一个Hero(英雄) 类, 每个Hero 有自己的名字和(SpecialSkill)特殊技能.建模这是一种建立的方法: 复制代码 代码如下: public class Hero{ public string FullName { get; set; } public s
-
C#延迟执行方法函数实例讲解
需求分析: 我们在做winform开发的时候,有时候需要让程序休眠几秒钟,但是如果我们直接使用 Thread.Sleep()函数的话,页面UI就会停止响应.怎么样解决呢,你可以把页面涉及到表现UI的代码放到一个单线程处理,也可以采用我面的方法,加一个小函数就ok了. if (MessageBox.Show("确定要清理吗?", "确认", MessageBoxButtons.YesNo) == DialogResult.Yes) { this.labMsg.Text
-
C#延时函数的使用说明
目录 C#延时函数使用 C#3个延时函数 C#延时函数使用 在线程中如果需要延时,尽量不要使用Sleep()函数,这样会导致时间片切到别的线程中. 使用如下函数: //Delay function public static void Delay(int milliSecond) { int start = Environment.TickCount; while (Math.Abs(Environment.TickCount - sta
-
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)//毫秒 {
-
C#中的延时函数sleep
目录 C#延时函数sleep sleep C#延时函数,不止sleep函数 关于Math.Abs() 其他 用C#中的线程来实现 C#延时函数sleep sleep using System.Threading; //导入命名空间,类Thread就在此空间中 Thread.Sleep(2000); //延时2s C#延时函数,不止sleep函数 在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作! 下边实现的是非独占性延时函数,延时过时
-
Vue中的异步组件函数实现代码
具体代码如下所示: export default new Router({ routes: [ { path: '/live', name: 'live', component: () => import('@/view/live/live.vue') } ] }) 上面的代码是很常见的router代码分割,只在代码路由为live才会去加载live.vue 但这样在live.vue获取的过程将是一片空白,什么也没有,体验不好, 利用vue提供的异步组建可以解决 新建一个 loadable.vue
-
JS中节流和防抖函数的实现及区别示例
目录 引言 一.概念 二.实现 三.区别 四.Lodash 4-1.throttle 4-2.debounce 五.使用场景 六.总结 引言 在前端开发中,经常和DOM.BOM打交道,例如:窗口的resize.scroll,输入框内容校验,按钮点击等等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕. 此时我们可以采用throttle(节流)和debounce(防抖)的方式来减少调用频率,提高性能的同时又不影响实际效果. 一.概念 函数节流( throttle
-
简单了解Python中的几种函数
几个特殊的函数(待补充) python是支持多种范型的语言,可以进行所谓函数式编程,其突出体现在有这么几个函数: filter.map.reduce.lambda.yield lambda >>> g = lambda x,y:x+y #x+y,并返回结果 >>> g(3,4) 7 >>> (lambda x:x**2)(4) #返回4的平方 16 lambda函数的使用方法: 在lambda后面直接跟变量 变量后面是冒号 冒号后面是表达式,表达式计算
-
C++ 中const修饰虚函数实例详解
C++ 中const修饰虚函数实例详解 [1]程序1 #include <iostream> using namespace std; class Base { public: virtual void print() const = 0; }; class Test : public Base { public: void print(); }; void Test::print() { cout << "Test::print()" << end
-
Angularjs中如何使用filterFilter函数过滤
AngularJS的filter,中文名"过滤器"是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东.AngularJS中有一个filterFilter函数用来对集合过滤,非常方便. 源代码大致如下: function filterFilter(){ return function(aray, expression comparator){ if(!isArray(array)) return array; var comparatorType = typeof(co
-
SQLite3中的日期时间函数使用小结
复制代码 代码如下: import sqlite3conn = sqlite3.connect('/tmp/sqlite.db')cur = conn.cursor() 接下来干嘛呢?建一张表吧.这里需要注意的是,SQLite不支持在创建表的同时创建索引,所以要分两步走,先创建表然后再创建索引 复制代码 代码如下: create_table_stmt = '''CREATE TABLE IF NOT EXISTS test_table ( id INTEGER PRIMARY KEY AUTOI
-
PostgreSQL中的XML操作函数代码
XML内容生成部分 SQL数据生成XML的函数. 1. xmlcomment:生成注释函数. xmlcomment(text ) 例: SELECT xmlcomment('hello'); xmlcomment -------------- <!--hello--> 2. xmlconcat:XML连接函数 xmlconcat(xml [, ...]) 例: SELECT xmlconcat('<abc/>', '<bar>foo</bar>'); xml
随机推荐
- docker 搭建hadoop以及hbase集群详解
- DB2数据库的备份和恢复
- AngularJS中transclude用法详解
- python实现简单的socket server实例
- php的crc32函数使用时需要注意的问题(不然就是坑)
- 简单实现bootstrap导航效果
- PHP递归实现层级树状展开
- xmlplus组件设计系列之按钮(2)
- Expandable "Detail" Table Rows
- 验证javascript中Object和Function的关系的三段简单代码
- python3射线法判断点是否在多边形内
- Django接收post前端返回的json格式数据代码实现
- python正则爬取某段子网站前20页段子(request库)过程解析
- 为什么 Java 8 中不需要 StringBuilder 拼接字符串
- vue element 生成无线级左侧菜单的实现代码
- 超简单使用Python换脸实例
- python3解析库pyquery的深入讲解
- Windows Server 2012 DHCP+WDS+WIN7+万能驱动 部署教程(一)
- 详解Python可视化神器Yellowbrick使用
- js blob类型url的视频下载问题的解决