Delphi 實現微妙級別的延遲函數

今天羣內 和 一羣友 爭論 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;





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章