EVC里面的滴答数是不是和硬件有关系,
而不像WINDOWS一样,一滴答代表1毫秒??
我现在有一下需求,如何实现好。
设定操作时长,比如10秒.
循环做操作。每做完操作,看是否超过了定的时长,没有就继续做,超过了就循环退出。
谢谢
每个系统的ticks数目都不一样的。。。
你的需求,可以如下实现
创建一个专门处理操作的线程
操作处理线程
event.SetEvent()
主线程:
while(1) {
DWORD dwRet = WaitForSingleObject(...,10000);
if(dwRet == WAIT_TIMEOUT ) // 超时
break;
}
谢谢楼上。
我已经很多线程了,为了这个功能我不想再创建一个线程。
有没有简便点的方法呢?
都到10秒了,你可以取系统时间,然后求差值。
用滴答数也可以,一般是1ms吧。
你也可以自己写个程序测试一下。是不是1ms?
对话框都有定时器的,这个也可以考虑。
如果对 精度要求不高的话 可以用WM_TIMER响应。或者使用另一个精度比较高的timeSetEvent();
用法可以查下MSDN。