DLL命令表
1
2
3
4
5
|
.版本 2 .DLL命令 QueryPerformanceCounter, 整數型, "kernel32", "QueryPerformanceCounter", , 獲取計數值 .參數 lpPerformanceCount, LARGE_INTEGER .DLL命令 QueryPerformanceFrequency, 整數型, "kernel32", "QueryPerformanceFrequency", , 返回計數頻率 .參數 lpFrequency, LARGE_INTEGER |
自定義數據類型表
1
2
3
|
.版本 2 .數據類型 LARGE_INTEGER .成員 QuadPart, 整數型 |
高精度延時源碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
.版本 2 .程序集 窗口程序集1 .子程序 __啟動窗口_創建完畢 真正的高精度延時 (1000) ' 延時1毫秒 .子程序 真正的高精度延時 .參數 要延時的時間, 整數型, , 微秒,1000微秒=1毫秒,1000毫秒=1秒 .局部變量 CurrTicks, LARGE_INTEGER .局部變量 TicksCount, LARGE_INTEGER QueryPerformanceFrequency (TicksCount) QueryPerformanceCounter (CurrTicks) ' 這里一定要LARGE_INTEGER數據類型,如果直接寫成整數型的話,是運行不了的 TicksCount.QuadPart = TicksCount.QuadPart × 要延時的時間 ÷ 1000000 TicksCount.QuadPart = TicksCount.QuadPart + CurrTicks.QuadPart .判斷循環首 (CurrTicks.QuadPart < TicksCount.QuadPart) QueryPerformanceCounter (CurrTicks) .判斷循環尾 () ' 高精度延時, 是 CPU 測速的基礎 ' Windows 內部有一個精度非常高的定時器, 精度在微秒級, 但不同的系統這個定時器的頻率不同, 這個頻率與硬件和操作系統都可能有關。 ' 利用 API 函數 QueryPerformanceFrequency 可以得到這個定時器的頻率。 ' 利用 API 函數 QueryPerformanceCounter 可以得到定時器的當前值。 ' 根據要延時的時間和定時器的頻率, 可以算出要延時的時間定時器經過的周期數。 ' 在循環里用 QueryPerformanceCounter 不停的讀出定時器值, 一直到經過了指定周期數再結束循環, 就達到了高精度延時的目的。 |
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
原文鏈接:http://www.sanye.cx/?id=8175