在WINCE系统中,我的定时器2秒一次,期间有读串口线程,刚开始定时器运行正常,几个小时候就运行的越来越慢,并没有死机,请问是什么原因?
是定时器2秒钟变长了,还是WINCE系统变慢了而2秒的时钟没有慢呢?
是EVC中的定时器吗
定时器好像是基于消息的,要进入消息队列,定为2秒,是每2秒发一个消息,但是什么时间处理,看你消息队列里定时消息前面有多少其他消息了
不会是准确的2秒的
我好像也有类似的问题,定时器用的时间久了就变慢了,怀疑是不是wince的问题呢
建议lz查下定时器内的代码,可能是代码有问题,比如泄露!
也可以作个测试,就是在定时器里只显示定时器的周期值,其他代码都去掉,看看是否会变慢呢?然后采用分割,试探的方法来确定哪块代码有问题..
可以肯定地说是程序问题。
WINCE定时机制,可以用PC上来测试,一样的效果。
当然也可以用定时器来计时,显示当前时间,如果发现时间不对,就可以很容易看出来。
内存泄露哦,加一个显示内存的代码,直观地看看剩余内存是否不断的减少
可能是内存泄露引起的吧……我的定时器连跑三个小时都没有问题,还是100MS定时的。你看下你的代码,好像在MFC下有一个得到DC的东东每次都会引起四个字节的内存泄露。