VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: sunfrank

[经验技巧] 巧妙大幅增加Timer控件频率

[复制链接]
发表于 2010-12-29 14:11:28 | 显示全部楼层
10# 小奶油

不是2个timer同时被调用
单个timer的精度是大约16 MS才发动一次,所以时间设置小于这个值就没有意义
假设timer事件内的代码只要x MS就能执行完毕,那么剩下的16-x MS就是空闲时间了
那么,假如你有N个timer,时间间隔的设置都小于16 MS
那么这些timer的事件都会被激发,只要保证N*x<16,运行时就不会有什么问题

LZ的代码写得更工整的话就是:
Private Sub Timer1_Timer()
Call xxx
End Sub

Private Sub Timer2_Timer()
Call xxx
End Sub

不过我估计,就算这样写了...激发的时间间隔并不能保证是16/N MS
因为毕竟真实的精度只有16 MS
能保证的只有16 MS以内xxx被调用N次而已...
回复 支持 反对

使用道具 举报

发表于 2010-12-29 17:10:14 | 显示全部楼层
11# 仙剑魔

不一定,你试验一下就会发现,就算一个Timer1的Interval=10保持不变,再加一个Timer2,Interval=10的话,Timer1本身的触发次数也会增加……我估计是Windows发现你有多个Timer就分配更多资源了……
回复 支持 反对

使用道具 举报

发表于 2010-12-29 17:25:32 | 显示全部楼层
12# acme_pjz

啊?
那样的话
如果Timer2再调用Timer1的事件,岂不是导致难以控制次数了...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-29 18:11:27 | 显示全部楼层
仙剑魔 说的太对了,其实这个东西就是利用了这个原理,巧妙地让Windows多执行我们的代码。
回复 支持 反对

使用道具 举报

发表于 2010-12-29 20:25:51 | 显示全部楼层
13# 仙剑魔

我以前那个山寨PRG程序就是Timer1干自己的事,Timer2也干自己的事,两者不互相调用……
回复 支持 反对

使用道具 举报

发表于 2010-12-31 11:37:01 | 显示全部楼层
呵呵,这是一个很有娱乐性的话题。
我觉得首先应该想一想 Timer 是如何触发的。然后你就会发现所有的 Timer 理论上应该是同时触发。只不过因为处理需要花费时间导致实际运行时间不同。换个说法,放10个 Timer 与在 Timer 中加一个 For 10 是等效的。
回复 支持 反对

使用道具 举报

发表于 2010-12-31 12:05:30 | 显示全部楼层
16# MaDaHa

你先测试一下看看,我们等着你的结果……
回复 支持 反对

使用道具 举报

发表于 2011-1-3 11:12:01 | 显示全部楼层
4# djrm_yb

自己靠自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-29 20:09

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表