Delphi 实现微妙级别的延迟函数

来源:互联网 发布:四维数据的图形表示 编辑:程序博客网 时间:2024/06/04 17:56

今天群内 和 一群友 争论 GetTickCount 和QueryPerformance 的时间误差 以及精度问题,以及windows 上实现毫秒级别的定时(硬件通信需要)。故开始研究 这个问题。

Delphi 下没有 网上搜了一下 有不少C++ 版本的实现 ,翻译到delphi 吧


//微妙级别的延迟函数 测试误差在2us 左右  测试机器 i3 3.2ghz//一路随云procedure DelayUSec(USec : Integer);var  Counter,Counter2,Freq:Int64;  Tim :Double;begin  QueryPerformanceFrequency(Freq);  QueryPerformanceCounter(Counter);  repeat    QueryPerformanceCounter(Counter2);    Tim :=  (Counter2 - Counter) / Freq;  until not (Tim < USec * 0.000001);end;





0 0