evc通讯久了定时器运行越来越慢,怎么回事?

407406136   2009-5-26 16:53 楼主
在WINCE系统中,我的定时器2秒一次,期间有读串口线程,刚开始定时器运行正常,几个小时候就运行的越来越慢,并没有死机,请问是什么原因?

回复评论 (9)

是定时器2秒钟变长了,还是WINCE系统变慢了而2秒的时钟没有慢呢?
点赞  2009-5-26 17:02
可能是内存泄漏了
点赞  2009-5-26 20:13
是EVC中的定时器吗
定时器好像是基于消息的,要进入消息队列,定为2秒,是每2秒发一个消息,但是什么时间处理,看你消息队列里定时消息前面有多少其他消息了
不会是准确的2秒的
点赞  2009-5-27 09:14
我好像也有类似的问题,定时器用的时间久了就变慢了,怀疑是不是wince的问题呢
点赞  2009-5-27 15:57
建议lz查下定时器内的代码,可能是代码有问题,比如泄露!

也可以作个测试,就是在定时器里只显示定时器的周期值,其他代码都去掉,看看是否会变慢呢?然后采用分割,试探的方法来确定哪块代码有问题..
点赞  2009-5-27 16:24
可以肯定地说是程序问题。

WINCE定时机制,可以用PC上来测试,一样的效果。

当然也可以用定时器来计时,显示当前时间,如果发现时间不对,就可以很容易看出来。
点赞  2009-6-25 14:48
同意LS,可以肯定地说是程序问题。
点赞  2009-6-25 15:18
内存泄露哦,加一个显示内存的代码,直观地看看剩余内存是否不断的减少
点赞  2009-6-26 12:52
可能是内存泄露引起的吧……我的定时器连跑三个小时都没有问题,还是100MS定时的。你看下你的代码,好像在MFC下有一个得到DC的东东每次都会引起四个字节的内存泄露。
点赞  2009-6-26 13:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复