VB 关于timer控件的问题(时间不对)
答案:3 悬赏:20
解决时间 2021-02-14 09:29
- 提问者网友:星空下的寂寞
- 2021-02-13 15:20
VB 关于timer控件的问题(时间不对)
最佳答案
- 二级知识专家网友:放肆的依賴
- 2021-02-13 16:41
使用 Timer 控件
Timer 控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理, Timer 控件也非常有用。
如果应用程序或其它应用程序正在进行对系统要求很高的操作— 例如长循环、高强度的计算或者正在访问驱动器、网络或端口— 则应用程序定时器事件的间隔可能比 Interval 属性指定的间隔长。
间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。
间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。
系统每秒生成 18 个时钟信号— 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。
使用API函数精度在毫秒级:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Label1.Caption = Time$
Sleep (6000) '精度在毫秒
Text1 = "123"
Label2.Caption = Time$
End Sub
Timer 控件响应时间的流逝。它们独立于用户,编程后可用来在一定的时间间隔执行操作。此控件的一个一般用处是检查系统时钟,判断是否该执行某项任务。对于其它后台处理, Timer 控件也非常有用。
如果应用程序或其它应用程序正在进行对系统要求很高的操作— 例如长循环、高强度的计算或者正在访问驱动器、网络或端口— 则应用程序定时器事件的间隔可能比 Interval 属性指定的间隔长。
间隔的取值可在 0 到 64,767 之间(包括这两个数值),这意味着即使是最长的间隔也不比一分钟长多少(大约 64.8 秒)。
间隔并不一定十分准确。要保证间隔准确,应在需要时才让定时器检查系统时钟,而不在内部追踪积聚的时间。
系统每秒生成 18 个时钟信号— 所以即使用毫秒衡量 Interval 属性,间隔实际的精确度不会超过 18 分之一秒。
使用API函数精度在毫秒级:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Label1.Caption = Time$
Sleep (6000) '精度在毫秒
Text1 = "123"
Label2.Caption = Time$
End Sub
全部回答
- 1楼网友:时光挺欠揍
- 2021-02-13 17:56
尝试这样做:
private sub timer1_tick(byval sender as system.object, byval e as system.eventargs) handles timer1.tick
if (labeltime.text = format(now, "hh:mm:ss")) then
………………
end if
labeltime.text = format(now, "hh:mm:ss")
end sub
然后把timer1的interval设置成1000(1秒一次检测)
注意,检测timer不一定非常准确,总是会有一定误差。因为if自身也需要判断
- 2楼网友:湫止没有不同
- 2021-02-13 17:04
没问题的。timer控件记时不精确,特别是interval很小的时候。可以考虑用win api里面的函数来记时,如果有需要的话可以直接上网下一个改进的控件。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯