EVC滴答数问题

qqqyyy10000   2009-12-26 21:03 楼主
EVC里面的滴答数是不是和硬件有关系,
而不像WINDOWS一样,一滴答代表1毫秒??

我现在有一下需求,如何实现好。

设定操作时长,比如10秒.
循环做操作。每做完操作,看是否超过了定的时长,没有就继续做,超过了就循环退出。

谢谢

回复评论 (5)

每个系统的ticks数目都不一样的。。。

你的需求,可以如下实现
创建一个专门处理操作的线程

操作处理线程
event.SetEvent()
主线程:
while(1) {
    DWORD dwRet = WaitForSingleObject(...,10000);
    if(dwRet == WAIT_TIMEOUT ) // 超时
        break;
}
点赞  2009-12-26 21:31
谢谢楼上。
我已经很多线程了,为了这个功能我不想再创建一个线程。

有没有简便点的方法呢?
点赞  2009-12-26 22:49
都到10秒了,你可以取系统时间,然后求差值。

用滴答数也可以,一般是1ms吧。
你也可以自己写个程序测试一下。是不是1ms?

对话框都有定时器的,这个也可以考虑。
点赞  2009-12-27 11:02
如果对 精度要求不高的话 可以用WM_TIMER响应。或者使用另一个精度比较高的timeSetEvent();
用法可以查下MSDN。
点赞  2009-12-27 20:50
WM_TIMER这个可以定时,但是好像也不太准确
点赞  2009-12-27 21:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复