会不会出现这样的问题:如果设置定时器时间是1000ms,每次都会触发消息响应,消息响应函数处理的数据会很大,时间会超过1000ms,那么再次触发这个消息的时候,会有什么样的情况发生?如何避免这样的情况?

解决方案 »

  1.   

    你的这个意思如果响应处理函数如果当前的任务没有完成,不会响应新的定时器消息? 有没有可能会放弃处理直接重新处理新的消息的可能?==============================================没有这种可能。
    假设在执行OnTimer函数时,有新的WM_TIMER消息到达,这个消息会进入消息队列;如果再有WM_TIMER消息到达,因为消息队列中已经有了一个未处理的WM_TIMER消息,后到达的WM_TIMER消息直接就被丢弃了。OnTimer处理完成后,程序开始处理消息队列中的消息,当处理WM_TIMER时,调用OnTimer函数
    然后如此循环,情况就是这样的。
      

  2.   

    给LZ推荐一个VC的定时器使用,有源码和大量注释,LZ一定要试下:
    http://download.csdn.net/detail/txzsp/2285350