vb中的sleep参数的困惑
本帖最后由 bcrun 于 2014-01-10 11:55:40 编辑 为什么使用sleep()将线程暂停后,用timeGetTime计算出前后使用的时间,然后是在不同的电脑运行,一样的参数,而时间长度会不一样呢?
代码如下:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Function datadd1()
Dim NumBuf As Long
Dim num1 As Long
Dim num2 As Long
Dim TimeBuf As Long
num1 = Val(frmTest.Text1(0).Text)
num2 = Val(frmTest.Text2(0).Text)
Do
TimeBuf = timeGetTime
NumBuf = NumBuf + 1
If NumBuf > num1 Then
NumBuf = 0
End If
frmTest.Label1(0).Caption = NumBuf
Sleep num2
frmTest.Label2(0).Caption = timeGetTime - TimeBuf
Loop
End Function
电脑一部是自己的笔记本,配置差的,T45的CPU ,一部是台式机I3的CPU,在自己的笔记本上sleep的参数能设定到1ms,在台式机上就算设定的是1ms结果实际算出来的时间也是15ms或者16ms。求解呀?
[解决办法]
大概是你是在XP下测试的,且忘了设period吧,具体参看我发的原创帖子:
http://bbs.csdn.net/topics/390629856
[推荐] [原创分享]关于1ms精度的计时延时器的基本测试 [问题点数:150分,结帖人bcrun]