vb timer控件定时 不准

来源:百度知道 编辑:UC知道 时间:2024/06/30 20:10:06
timer控件实时采集数据,但定时不准,有几十甚至几百毫秒的误差,有没有其它方法?

可以用API:GetTickCount
它返回从操作系统启动到现在所经过的毫秒数,非常精确。使用时,先得到一个返回,然后你就加个循环,时时检测GetTickCount的返回值,如果返回值与先前得到的返回值之差>=延时毫秒数,则执行采集任务,不过这样的话最好在循环里加个DoEvents,要不程序容易假死。
不知道sleep延时精确度高不高,它可以让当前应用程序挂起n毫秒,和刚才的一样放在循环里也可以定时采集。

那就把timer的interval定义到毫秒级别啊
也就是interval的值设定小于1000(1s)

你可以试一下 把时间间隔设为1ms然后使一个变量每次递加1,一秒钟后停止.最终只是返回五十几(理论上来说该返回1000),而且每次都不同,这大概就是timer反应的极限了(1/53秒左右)