吐血请教timer定时问题

frankwong 2003-10-09 10:58:10
我在编一个定时自动下载程序,情况大概如下:
每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的值相同时也不执行。但确实已经成功执行了二三个是分钟了,是否是其精确度问题。吐血请教...(有其他定时十分钟的方法提供也可)
...全文
52 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvlvlvlylyly 2003-10-10
  • 打赏
  • 举报
回复
好办法~~~支持
rainstormmaster 2003-10-10
  • 打赏
  • 举报
回复
你可以将定时设置为1分钟,然后在Timer中计数,当时间积累到一定次数才发作,理论上可以任意长时间,如:
Private Sub Timer1_Timer()
Static n As long
n = n + 1
If n = 10 Then
........
n = 0
End If
End Sub
frankwong 2003-10-10
  • 打赏
  • 举报
回复
多谢各位,尤其是 rainstormmaster的方法(因为我的timer控件需要每1秒判断其他程序代码,所以不能使用),不过问题解决了,原因应该是时间精确度问题,我在每个时间值上使用format函数之后就解决了,即format(time,"Hh:Nn:Ss")永远等于
format(cssj,"Hh:Nn:Ss")!!!!!!!!!!!!!!!!立即给分
buffaloes 2003-10-10
  • 打赏
  • 举报
回复
rainstormmaster(rainstormmaster) 说得对。
aiur2000 2003-10-10
  • 打赏
  • 举报
回复
tongyi
alley_zhan 2003-10-10
  • 打赏
  • 举报
回复
会不会是这个原因:
因为下载要花一定的时间
也可能在timer事件里
下载任务超过了10分钟
那么这个timer事件还没有结束
下个符合条件的时间就到来了
可是系统还没有完成上一次的任务
所以这次的任务就没有执行

也可能这个想法很愚蠢:)
aha99 2003-10-10
  • 打赏
  • 举报
回复
别用等于,用大于。。。
abc10 2003-10-10
  • 打赏
  • 举报
回复
看错了
abc10 2003-10-10
  • 打赏
  • 举报
回复
你要设置全局变量cssj
dim cssj as date

form_load ...

Private Sub Timer1_Timer() ...
lvlvlvlylyly 2003-10-09
  • 打赏
  • 举报
回复
呵呵,真是吐血,不知道你等了多少个二三是分钟,才在这里来问~

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧