我用了一个Timer1控件,我把Timer1.Interval:=5000,也就是说五秒才触发一次Timer1Timer事件!但我在Timer1Timer事件用了sleep(5000);也就是说在执行这个事件的时候最少要5秒完成,按理来说Timer1Timer事件是应该十秒才触发一次的,但我观察了一下有时候是六秒触发,有时候是八秒触发.难道不是延时的5秒加Timer1本身设置的5秒,每十秒触发一次吗?麻烦那位高手能解释一下,小弟谢谢了!
调试欢乐多
能不能详细些,万分感谢!
我想了一下是不是如果我sleep(10000)的话,那么timer在5秒后会另外建立一个线程并执行Timer1Timer事件,是这样吗?请告知谢谢!
除非你在事件开始关掉定时器,事件结束重新启动事件没执行完,新的消息得不到响应,有机会响应了,马上就会重新执行事件,所以。。
此外WM_TIMER在消息队列中的优先级是比较低的,没办法保证准确性!