易语言高精度完美延时的源码
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不停的读出定时器值,一直到经过了指定周期数再结束循环,就达到了高精度延时的目的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接