我在编一个定时自动下载程序,情况大概如下:
    每10分钟检查要下载的文件在硬盘上是否存在,否则进行下载有timer控件,间隔属性设为1秒。form_load 事件代码如下:
dim cssj as date '尝试时间
cssj=cdate("09:00:00")在timer控件的定时事件中代码如下if time=cssj then '如果到达尝试时间
    cssj=cdate(cdate(cssj)+cdate("00:10:00"))
    '开始检查要下载的文件在硬盘上是否存在,否则进行下载
end if
程序执行了二至三个十分钟后就不会执行timer控件的定时事件的尝试下载代码,查看原因竟然是time和cssj的值相同时也不执行。但确实已经成功执行了二三个是分钟了,是否是其精确度问题。吐血请教...(有其他定时十分钟的方法提供也可)

解决方案 »

  1.   

    你可以将定时设置为1分钟,然后在Timer中计数,当时间积累到一定次数才发作,理论上可以任意长时间,如: 
        Private Sub Timer1_Timer() 
         Static n As long 
         n = n + 1 
         If n = 10 Then 
         ........ 
         n = 0 
         End If 
        End Sub 
      

  2.   

    你要设置全局变量cssj
    dim cssj as date form_load ...Private Sub Timer1_Timer() ...
      

  3.   

    会不会是这个原因:
    因为下载要花一定的时间
    也可能在timer事件里
    下载任务超过了10分钟
    那么这个timer事件还没有结束
    下个符合条件的时间就到来了
    可是系统还没有完成上一次的任务
    所以这次的任务就没有执行也可能这个想法很愚蠢:)
      

  4.   

    rainstormmaster(rainstormmaster) 说得对。
      

  5.   

    多谢各位,尤其是 rainstormmaster的方法(因为我的timer控件需要每1秒判断其他程序代码,所以不能使用),不过问题解决了,原因应该是时间精确度问题,我在每个时间值上使用format函数之后就解决了,即format(time,"Hh:Nn:Ss")永远等于
    format(cssj,"Hh:Nn:Ss")!!!!!!!!!!!!!!!!立即给分