如何编写一个高效的时间触发器?

cn_archer 2006-06-13 10:12:43
假设一个闹钟程序,在10:13和10:20分各闹钟一次。
那么,有什么比较好的方法来判断时间是否到了?

比较简单的方法是把预设的时间和当前系统时间比较,看是否相等。但这样几乎每时每刻都要去比较,很是耗费系统资源。

有什么办法让该程序在预设好的时间里自动触发,而不是一直去比较呢?
...全文
354 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winner2050 2006-06-14
  • 打赏
  • 举报
回复
根本不耗资源。
除了复杂的数学计算才用资源多,比如实时画图、压缩。。。。
HAVENT 2006-06-13
  • 打赏
  • 举报
回复
楼上的不错

在初始化和每次到预定时间的时候重新设置一下间隔时间就行了
lifengguo 2006-06-13
  • 打赏
  • 举报
回复
其它没有必要每时每刻去比较,比如现在时刻是9:00,那么离 10:13,还有一个多小时呢,那么 Timer控件的时间间隔可以设置为 60分钟啊。60分钟后,也就是10:00,离终点时间还有13分钟,可以再次将Timer控件的时间间隔可以设置为 10分钟......依此类推

我的意思就是说从程序开始运行时刻起,计算离终点时间还有多长,然后设置 时间间隔,到点后,然后再判断离终点时间还有多长,再设置 时间间隔,当然这次的时间间隔当然比较短了,依此类推,直到离终点时间很近了,我们就可以停止判断离终点时间还有多长了
andy_1027 2006-06-13
  • 打赏
  • 举报
回复
只能这样比吧
guojianguang154 2006-06-13
  • 打赏
  • 举报
回复
allanli(若尘) 的说法是对的
gezichong 2006-06-13
  • 打赏
  • 举报
回复
先比时,再比分,最后比秒,
如果"时"不等,则过一个小时再比;
如果"分"不等,则过一分再比;
如果"秒"不等,则等下一秒;
这样应该可以
allanli 2006-06-13
  • 打赏
  • 举报
回复
觉得楼主的担心是多余的,试问在今天CPU已经可以达到每秒几十亿的运算了,你花它个一千几百个周期去判断那算得了什么呢!还不如把心思花到别的吧.
cn_archer 2006-06-13
  • 打赏
  • 举报
回复
这样还是要判断很多遍。
如果只闹钟一次的话,那还好。

但如果是类似于备忘录这样的程序来说,由于有多条需要提醒的内容,而且时间周期不会一致,那么就很吐血了。

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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