VB倒数计时 (一个表单需要三个倒数计时)

原本是有计时失准的问题问题在http://zhidao.baidu.com/question/1988181051277898227有人解答但是他给我的程式码是给一个倒数... 原本是有计时失准的问题
问题在http://zhidao.baidu.com/question/1988181051277898227 有人解答

但是他给我的程式码是给一个倒数计时用的
我一个表单需要有3个倒数计时的,如上图

求3个倒数计时的程式码
展开
 我来答
pivotstar
2014-05-14 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:33%
帮助的人:500万
展开全部

关于(问题在http://zhidao.baidu.com/question/1988181051277898227 有人解答)

这个解答是一种对Timer控件的羞辱,以及凸显学艺不精而已。如果倒计时时间超过5秒的话,其本身的While...Wend循环设计不足取,如果使用他的函数倒计时10分钟的话,10分钟内无法跳脱循环动作,更别想继续启动第二个倒计时、第三个倒计时...

我不说原理,直接告诉你设计重点。

使用多个Timer控件处理多个倒计时才是正确的,以倒计时600秒、480秒、360秒三种做解说,要准确的计时并不是将600、480、360每次在timer控件里减1或是减0.01的方式,这不代表时间接近了1秒或是1毫秒。而是要把这事件看待成“进入核对时间次数的频繁率”,比如:

  • 取得倒计时的未来时间 现在时间+600秒=未来时间

  • timer事件interval设置为100ms(系统因为整个资源忙碌运作、误差值本来就超过7-15ms)

  • 每次timer事件检查核对未来时间的变量与当前的电脑时间是否到期,而不是每次从600-i去核对是否为0

如果这种方法会误差超过200毫秒,那么我告诉你原因,这误差是电脑主板晶振频率系统的质量问题。而服务器的主板晶振频率系统的质量也可能每天跟标准时间误差几秒的。

注意一个原理,前599秒是可以因为系统忙碌而每次误差500毫秒的,但是最后决定性的1秒到期时间点与系统时间的误差绝对不会超过interval=100ms的一倍200毫秒。

 

有兴趣的不妨试试使用一个Do...Loop或While...Wend循环检查600秒是否到期,就算加上Doevents以及Sleep,它不但占用系统资源30%左右拖累系统速度,还让本身程序的其他控件、其他事件的代码都没机会运行。再试试一下使用10个Timer控件同时计时,你将会看到10个倒计时控件占用系统资源不到10%

 

曾经看到XX宣传功能可以设置每1毫秒自动点击鼠标一次,我笑了,姑且不论是否超级电脑,光是与远端服务器完成交换鼠标点击信息的时间都不止50毫秒

 

针对本内容有什么疑问继续提出吧,有空就会继续回复问题。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式