很奇怪的问题,我机上的VB6在取系统时间时,得到的是64分之一秒的倍数。
一开始用Timer控件,发现Interval怎么设都只得最高每秒64HZ,
再后用Timer()、GetTickCount()函数也是一样,取回的时间都间隔64分之一秒。
以下是一个只有一个按键和TEXT的测试程序:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim i As Integer
Dim t1 As Long
Text1 = ""
While i < 100
If t1 <> GetTickCount Then
Text1 = Text1 & GetTickCount & ","
t1 = GetTickCount
i = i + 1
End If
' DoEvents
Wend
End Sub
结果Text1内容:
11563703,11563718,11563734,11563750,11563765,11563781,11563796,11563812,11563828,11563843,11563859,11563875,11563890,11563906,11563921,11563937,11563953,11563968,11563984,11564000,11564015,11564031,11564046,11564062,11564078,11564093,11564109,11564125,11564140,11564156,11564171,11564187,11564203,11564218,11564234,11564250,11564265,11564281,11564296,11564312,11564328,11564343,11564359,11564375,11564390,11564406,11564421,11564437,11564453,11564468,11564484,11564500,11564515,11564531,11564546,11564562,11564578,11564593,11564609,11564625,11564640,11564656,11564671,11564687,11564703,11564718,11564734,11564750,11564765,11564781,11564796,11564812,11564828,11564843,11564859,11564875,11564890,11564906,11564921,11564937,11564953,11564968,11564984,11565000,11565015,11565031,11565046,11565062,11565078,11565093,11565109,11565125,11565140,11565156,11565171,11565187,11565203,11565218,11565234,11565250,
很明显以64HZ给出的时间。
有没哪位帮忙解说一下呢?
PS:CPU为AMD 64Bit 3200+
一开始用Timer控件,发现Interval怎么设都只得最高每秒64HZ,
再后用Timer()、GetTickCount()函数也是一样,取回的时间都间隔64分之一秒。
以下是一个只有一个按键和TEXT的测试程序:
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim i As Integer
Dim t1 As Long
Text1 = ""
While i < 100
If t1 <> GetTickCount Then
Text1 = Text1 & GetTickCount & ","
t1 = GetTickCount
i = i + 1
End If
' DoEvents
Wend
End Sub
结果Text1内容:
11563703,11563718,11563734,11563750,11563765,11563781,11563796,11563812,11563828,11563843,11563859,11563875,11563890,11563906,11563921,11563937,11563953,11563968,11563984,11564000,11564015,11564031,11564046,11564062,11564078,11564093,11564109,11564125,11564140,11564156,11564171,11564187,11564203,11564218,11564234,11564250,11564265,11564281,11564296,11564312,11564328,11564343,11564359,11564375,11564390,11564406,11564421,11564437,11564453,11564468,11564484,11564500,11564515,11564531,11564546,11564562,11564578,11564593,11564609,11564625,11564640,11564656,11564671,11564687,11564703,11564718,11564734,11564750,11564765,11564781,11564796,11564812,11564828,11564843,11564859,11564875,11564890,11564906,11564921,11564937,11564953,11564968,11564984,11565000,11565015,11565031,11565046,11565062,11565078,11565093,11565109,11565125,11565140,11565156,11565171,11565187,11565203,11565218,11565234,11565250,
很明显以64HZ给出的时间。
有没哪位帮忙解说一下呢?
PS:CPU为AMD 64Bit 3200+
解决方案 »
- vb2005连接sq2005的adodb.connection????????????????????????????????????????
- 有什么办法能让监控的数据实时保存到服务器的数据中而不占用数据库太大的资源呢?
- 请问, 怎样用Inno5打包字体?
- VB 如何通过shockwaveflash 获得数据?
- 请问如何用SQL语句改变SA的密码呀
- 无效使用
- 求大神帮忙解决问题
- 读取文件中一行然后提取信息(李洪根在吗?)
- Win下,有什么好的办法可以检测系统未安装补丁
- 小弟受到欺负,大家帮我报仇,程序员不是好欺负的!帮我想办法!
- VB winsocket控件TCP编程数据连包问题
- 在制作安装文件时,怎样制作一个自动建立数据源,而不用再到管理工具里去添加数据源的.EXIE程序
QueryPerformanceCounter
刚在虚拟机跑过(Microsoft Virtual PC 6,XP,256M内存),时间间隔变成10MS了
找了N多资料
大约就是,GetTickCount虽然以毫秒为单位,但精度只能达到十几毫秒(鄙视说精度是毫秒级的人,在网上说达到毫秒级的竟然有三分之二!),其步进为一个Tick的时间间隔,在每个系统上都不同(还是不明白为什么)。其它如SLeep 、Timer、TimeGetTime等函数也一样以1Tick为步进。
不过没时间再细究了,就结了吧