這篇文章主要介紹了易語(yǔ)言如何實(shí)現(xiàn)高精度完美延時(shí),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司主營(yíng)章丘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā),章丘h5小程序制作搭建,章丘網(wǎng)站營(yíng)銷推廣歡迎章丘等地區(qū)企業(yè)咨詢
DLL命令表
.版本 2 .DLL命令 QueryPerformanceCounter, 整數(shù)型, "kernel32", "QueryPerformanceCounter", , 獲取計(jì)數(shù)值 .參數(shù) lpPerformanceCount, LARGE_INTEGER .DLL命令 QueryPerformanceFrequency, 整數(shù)型, "kernel32", "QueryPerformanceFrequency", , 返回計(jì)數(shù)頻率 .參數(shù) lpFrequency, LARGE_INTEGER
自定義數(shù)據(jù)類型表
.版本 2 .數(shù)據(jù)類型 LARGE_INTEGER .成員 QuadPart, 整數(shù)型
高精度延時(shí)源碼
.版本 2 .程序集 窗口程序集1 .子程序 __啟動(dòng)窗口_創(chuàng)建完畢 真正的高精度延時(shí) (1000) ' 延時(shí)1毫秒 .子程序 真正的高精度延時(shí) .參數(shù) 要延時(shí)的時(shí)間, 整數(shù)型, , 微秒,1000微秒=1毫秒,1000毫秒=1秒 .局部變量 CurrTicks, LARGE_INTEGER .局部變量 TicksCount, LARGE_INTEGER QueryPerformanceFrequency (TicksCount) QueryPerformanceCounter (CurrTicks) ' 這里一定要LARGE_INTEGER數(shù)據(jù)類型,如果直接寫成整數(shù)型的話,是運(yùn)行不了的 TicksCount.QuadPart = TicksCount.QuadPart × 要延時(shí)的時(shí)間 ÷ 1000000 TicksCount.QuadPart = TicksCount.QuadPart + CurrTicks.QuadPart .判斷循環(huán)首 (CurrTicks.QuadPart < TicksCount.QuadPart) QueryPerformanceCounter (CurrTicks) .判斷循環(huán)尾 () ' 高精度延時(shí), 是 CPU 測(cè)速的基礎(chǔ) ' Windows 內(nèi)部有一個(gè)精度非常高的定時(shí)器, 精度在微秒級(jí), 但不同的系統(tǒng)這個(gè)定時(shí)器的頻率不同, 這個(gè)頻率與硬件和操作系統(tǒng)都可能有關(guān)。 ' 利用 API 函數(shù) QueryPerformanceFrequency 可以得到這個(gè)定時(shí)器的頻率。 ' 利用 API 函數(shù) QueryPerformanceCounter 可以得到定時(shí)器的當(dāng)前值。 ' 根據(jù)要延時(shí)的時(shí)間和定時(shí)器的頻率, 可以算出要延時(shí)的時(shí)間定時(shí)器經(jīng)過(guò)的周期數(shù)。 ' 在循環(huán)里用 QueryPerformanceCounter 不停的讀出定時(shí)器值, 一直到經(jīng)過(guò)了指定周期數(shù)再結(jié)束循環(huán), 就達(dá)到了高精度延時(shí)的目的。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“易語(yǔ)言如何實(shí)現(xiàn)高精度完美延時(shí)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!