软件有个模块,::SetTimer后,周期性的发送数据,在xp上运行很正常,启动后可以周期发送。但是在win7上,启动后,半个小时左右,定时器就不工作了,没法发送数据。是否有高手了解这种情况?定时器在xp下正常工作,但是win7下会中途停止。

解决方案 »

  1.   

    应该不会是SetTimer函数问题,扩大思路查查其它可能的原因。
      

  2.   

    现象就是设置完成定时器后,在xp下可以周期被调用某个函数,而且长时间周日调用,而在win7下调用半个小时左右后,就自动停止不调用了
      

  3.   

    系统环境变了,
    还有就是你SetTimer具体去做了啥,也可能因为执行的操作,在win7和xp里有区别
      

  4.   

    ontimer主要任务是周期向端口发送数据。其实整体的思路就是设定定时器,周期发送通讯数据,直到手动杀死定时器,才停止发送数据。
      

  5.   

    ontimer周期把固定的数据发送给端口。是不是9楼说的那种阻塞呢?
      

  6.   

    数据发送时用的以太网协议。xp下可正常的用,就是win7下一个小时到俩个小时就不工作了
      

  7.   

    settime精度低,用来通讯肯定不靠谱,就算是xp也不靠谱。多媒体定时器啊亲
      

  8.   

    你的源代码是在win7下重新编译的还是直接把xp下编译链接好的那个直接运行的?
      

  9.   

    我也有發生一樣的狀況,
    我有隻在win xp下運行了超過4年的程式,
    主要是在固定的時間運行TIMERPROC lpTimerFunc funtion去做事情,
    這隻程式跟網路無關,單純只在本地端運行。最近換成win7後,就發現有時候程式在時間到時候,會有不去trigger TIMERPROC lpTimerFunc function的概率發生,上網搜了很多資訊,到目前還是無法解決~
      

  10.   

    内存有变化吗?
    先搞清楚为什么“會有不去trigger TIMERPROC lpTimerFunc function的概率發生”
      

  11.   

    有可能定时到要执行的任务时间长,尚未完成就开始了第二次,发生了死锁、资源争抢等等。总之应该不是settimer本身的问题。