您好,登錄后才能下訂單哦!
這篇文章主要介紹了易語言如何實現高精度完美延時,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
DLL命令表
.版本 2 .DLL命令 QueryPerformanceCounter, 整數型, "kernel32", "QueryPerformanceCounter", , 獲取計數值 .參數 lpPerformanceCount, LARGE_INTEGER .DLL命令 QueryPerformanceFrequency, 整數型, "kernel32", "QueryPerformanceFrequency", , 返回計數頻率 .參數 lpFrequency, LARGE_INTEGER
自定義數據類型表
.版本 2 .數據類型 LARGE_INTEGER .成員 QuadPart, 整數型
高精度延時源碼
.版本 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 不停的讀出定時器值, 一直到經過了指定周期數再結束循環, 就達到了高精度延時的目的。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“易語言如何實現高精度完美延時”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。