sleep是会阻塞线程的

网上有些延迟函数测试下来还是会阻塞,而接下来推荐的代码则不会

 
1
2
3
4
5
6
7
8
9
procedure delay(dwMilliseconds:integer);
var
  firsttickcount: longint;
begin
  firsttickcount := gettickcount;
  repeat
    application.processmessages;
  until ((gettickcount - firsttickcount) >= longint(dwMilliseconds));
end;
醉倚黄昏 2013 年 8 月 7 日 下午 2:03回复

用gettickcount计时有限制啊,精度一般大于10ms,而且,系统启动时间过长获取到的值会归零,貌似。

    1. BccSafe 2013 年 8 月 8 日 下午 3:28回复

      delphi中规定longint上限为2147483647,因为单位是毫秒,换算下是24.8天,所以基本不用担心,极端的不考虑
      至于精度也不需要考虑,就算延迟1秒也不在乎那10几毫秒的精度
      归零的问题我百度了下,是连续开机大约49天以后才会(不考虑极端)

      - -这些细节的确是我没注意到,在服务器上运行这些代码可能会出现问题
      另外,之所以说比sleep好,是因为不堵塞进程,这个才是这篇文章的意义所在。

http://www.bccsafe.com/

延迟函数 比sleep效果好的更多相关文章

  1. Go 延迟函数 defer 详解

    Go 延迟函数 defer 详解 Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,然而在实际应用中,很多 gopher 并没有真正搞明白 defer.re ...

  2. Delphi 延迟函数 比sleep 要好的多

    转自:http://www.cnblogs.com/Bung/archive/2011/05/17/2048867.html //延迟函数:方法一 procedure delay(msecs:inte ...

  3. go defer (go延迟函数)

    go defer (go延迟函数) Go语言的defer算是一个语言的新特性,至少对比当今主流编程语言如此.根据GO LANGUAGE SPEC的说法: A "defer" sta ...

  4. C# 延迟函数

    #region 延迟函数 public static bool Delay(int delayTime) { DateTime now = DateTime.Now; int s; do { Time ...

  5. Golang入门教程(十三)延迟函数defer详解

    前言 大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦.Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,然而在 ...

  6. 用Easing函数实现碰撞效果

    用Easing函数实现碰撞效果 工程中需要的源码请从这里下载: https://github.com/YouXianMing/EasingAnimation 源码: // // ViewControl ...

  7. go 学习笔记之解读什么是defer延迟函数

    Go 语言中有个 defer 关键字,常用于实现延迟函数来保证关键代码的最终执行,常言道: "未雨绸缪方可有备无患". 延迟函数就是这么一种机制,无论程序是正常返回还是异常报错,只 ...

  8. go 学习笔记之咬文嚼字带你弄清楚 defer 延迟函数

    温故知新不忘延迟基础 A "defer" statement invokes a function whose execution is deferred to the momen ...

  9. GO语言延迟函数defer用法分析

    这篇文章主要介绍了GO语言延迟函数defer用法,较为详细的分析了GO语言的特性与具体用法,并给出了一个比较典型的应用实例,具有一定的参考借鉴价值,需要的朋友可以参考下   本文实例讲述了GO语言延迟 ...

随机推荐

  1. NET Core 1.0

    VS Code从零开始开发调试.NET Core 1.0 使用VS Code 从零开始开发调试.NET Core 1.0. .NET Core 是一个开源的.跨平台的 .NET 实现. VS Code ...

  2. 应用程序无法正常启动0xc000007b

    参考: http://jingyan.baidu.com/article/ff42efa9181bbbc19e22022f.html DirectX修复工具: http://blog.csdn.net ...

  3. 获取java byte的无符号数值

    byte a = (byte)234; System.out.println(a); 上面的代码,结果是-22,因为java中byte是有符号的,byte范围是-128~127. 如果想输出234,该 ...

  4. 关于JSP post请求乱码的问题

    解决用户请求页面乱的问题 1. 修改apache下的config文件夹下的server.XML文件 <Connector connectionTimeout="20000" ...

  5. php - 小型微博系统

    效果: 数据库: 项目结构: add.php : 添加微博. conn.php : 数据库配置文件. delete.php : 删除博客代码. disinfo.php : 显示微博详细信息. inde ...

  6. MONGODB的内部构造 FROM 《MONGODB THE DEFINITIVE GUIDE》

    今天下载了<MongoDB The Definitive Guide>电子版,浏览了里面的内容,还是挺丰富的.是官网文档实际应用方面的一个补充.和官方文档类似,介绍MongoDB的内部原理 ...

  7. TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志

    TF-IDF与余弦相似性的应用(一):自动提取关键词 - 阮一峰的网络日志     TF-IDF与余弦相似性的应用(一):自动提取关键词     作者: 阮一峰     日期: 2013年3月15日 ...

  8. ESRI Shapefiles (SHP)

    ESRI Shapefiles (SHP) Also known as ESRI ArcView Shapefiles or ESRI Shapefiles. ESRI is the company ...

  9. highcharts dynamic change line color

    mouseOut: function(){ this.series.graph.attr({"stroke","#ccc"}) }

  10. maven本地jar

    <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId&g ...