timer控件是否影响系统时间。

cclxj 2001-10-12 07:59:11
请问timer控件是否影响系统时间?
...全文
313 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
老熊宝宝 2001-10-16
  • 打赏
  • 举报
回复


我又想了一下,cclxj的问题,为什么慢15分钟,你是用什么基准来比较才说慢了的呢?
如果你Caption上的时间是在Timer事件中累计的,那么肯定有误差,因为它的精度只有55ms,
VB的帮助里就警告我们不要用Timer来累计时间,也就是说,在一秒钟的最后一个55ms,也就是下
一个timer事件到来之前,你的应该让timer控件enalbe=false,然后用别的方法来循环检查系统时间,以保证在下一个Timer事件到来前的确已经过了一秒,然后再让timer控件enalbe=true,
否则你Caption上的时间肯定比真正的系统时间快,累计起来让人觉得系统时间慢了15分钟也没
什么奇怪,因为实际上是你快了,而不是系统慢了。


cclxj 2001-10-16
  • 打赏
  • 举报
回复
我用VB+ACCESS97写了一个考勤程序。为什么一运行程序时钟就会慢呢?

具体请看。
http://www.csdn.net/expert/topic/314/314063.shtm
老熊宝宝 2001-10-16
  • 打赏
  • 举报
回复
的确上头我讲错,时钟中断每秒大约应为18.2次(保留一们小数),还有上面的8259应该是
8253,WM_TIME应该是WM_TIMER,对不起,先头没仔细检查,特此更正。
Timer函数用来返回午夜以来的秒数,也不会影响系统时间。
cqq_chen 2001-10-16
  • 打赏
  • 举报
回复
不是系统变慢了,而是因为你用了TIMER之后,系统变的分时操作,效率下降了而已。
langzhi 2001-10-16
  • 打赏
  • 举报
回复
同意。
weixiaohua 2001-10-15
  • 打赏
  • 举报
回复
TIMER控件不会不过我记得VB里好象有个叫TIMER的函数会影响系统时间的
langzhi 2001-10-15
  • 打赏
  • 举报
回复
楼上的同志,你讲错了一个地方:时钟中断应该是18次而不是17次,准确地讲应该是18.2次.不过这个精度也还是可以修改的,至少可以改到1000次.
至于个性系统时间,可以用api函数:setsystemtime.
大家互相学习.
QQ:52755652
cclxj 2001-10-15
  • 打赏
  • 举报
回复
Timer也是取Bios时间的话,那么为什么我关机重启后。系统时间为什么会变成正常的呢?
humor 2001-10-15
  • 打赏
  • 举报
回复
Timer也是取Bios时间,多个进程与Windows竞争,导致了混乱。
因为单CPU是假的多进程
tms320dsp 2001-10-15
  • 打赏
  • 举报
回复
把你的程序贴出来吧。
cclxj 2001-10-15
  • 打赏
  • 举报
回复
到底影响不影响呢?有人说影响,有人不影响。
如果影响,它是怎么影响的呢?
难道WINDOWS在一开机时取到CMOSE的时钟后。就自己计算时钟,也就是说它所显示的时钟并不是CMOSE的时钟,而是自己计算的时钟吗?
当我运行程序时,由于事件处理比较复杂,所以它就影响到了WINDOWS时钟,所以系统时间就不准了。当我重新启到计算机时。它又取到CMOSE的时钟,所以就又正常了。大家说,我说的有道理吗?
老熊宝宝 2001-10-15
  • 打赏
  • 举报
回复
是的,timer肯定不会影响系统时间,用timer控件,就象在VC中处理WM_TIME消息,Windows
根据时钟中断每秒钟产生17次这次的消息,不管你怎么处理这个消息,这个消息都会被
Windows放到消息队列中。所以timer的精度最高只有55ms。而且处理timer事件不会影响别
的进程,只会影响自己下一个timer事件,所以不会导致系统混乱。只有在使用高精度的多
媒体时钟时才会影响到别的进程,不过也不会影响到windows的系统时间的准确,除非你
hook了关于时间的API,并且报告假时间给windows,或者你直接对8259时钟发生器进行编
程,我想只用Vb,是不可能影响到系统时间的准确,呵呵,别告诉我你可以直接用time语句
来改时间,如果你能用纯VB使得windows时间变快或变慢,请千万要公布你的方法,我非常
想知道。


langzhi 2001-10-15
  • 打赏
  • 举报
回复
timer肯定不会影响系统时间。
当你的timer多了之后,如果你的程序在一个时钟周期内处理不完事情的话,它照样会重新调用时钟处理程序。
如果timer太多的话,系统就可能会死机,而不会使时钟变慢 。
另外说一句,时钟中断是硬件产生的,不受程序的影响。所以软件不会使时钟变慢,除非你的程序使用了修改时钟的命令。

大家一起学习。
xiaofei104 2001-10-14
  • 打赏
  • 举报
回复
根本不会影响,不信你去看看WIN32?
cclxj 2001-10-14
  • 打赏
  • 举报
回复
回复人: cclxj(lxj) (2001-10-13 11:35:26) 得0分
回复人: cclxj(lxj) (2001-10-13 11:04:50) 得0分
http://www.csdn.net/expert/topic/314/314063.shtm

大家看看这个吧

mellow 2001-10-14
  • 打赏
  • 举报
回复
尽量少用!
影响!
sanjiang 2001-10-14
  • 打赏
  • 举报
回复
绝对不会.
cclxj 2001-10-14
  • 打赏
  • 举报
回复
那是什么原因呢?
一运行,我的程序,就慢呢/
除了多用了几个TIMER之外,跟以前没有不同呀
cclxj 2001-10-13
  • 打赏
  • 举报
回复
回复人: cclxj(lxj) (2001-10-13 11:04:50) 得0分
http://www.csdn.net/expert/topic/314/314063.shtm

大家看看这个吧

cclxj 2001-10-13
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/314/314063.shtm

大家看看这个吧
加载更多回复(8)

1,451

社区成员

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

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