建站优化

当前位置:

windows程序如何实现精准定时

浏览量:67次

windows程序如何实现精准定时

1. 精度不高

windows98大概是55ms,Windows NT大概是10ms。

2. WM_TIMER消息可能无法及时处理

WM_TIMER消息和其他消息一样,存放在正常的消息队列之中。如果程序处理其他消息,用了太长的时间,就耽误了WM_TIMER消息的处理,从效果上看就相当于定时器来晚了。

3. WM_TIMER消息可能会有遗漏

这样一来,如果一个windows程序在时间方面有苛刻的要求(例如,测试仪之类的软件),怎么办呢。

“小兵以太网测试仪”采用的是如下的笨方法。

这种方法非常简单,但也确实有效。下面是此方法的伪代码。

interval=x; //所需的时间间隔

next_do_work_time=当前时间;

while (!need_stop)

{

do

{

cur_time=当前时间;

} while (!need_stop && cur_time

if (need_stop) break;

DO_WORK();

next_do_work_time+=interval;

}

需要说明的是,这种方法是很消耗CPU的 :)

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【779898168@qq.com】,我们在确认后,会立即删除,保证您的版权。