首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb中的sleep参数的纳闷

2014-01-15 
vb中的sleep参数的困惑本帖最后由 bcrun 于 2014-01-10 11:55:40 编辑为什么使用sleep()将线程暂停后,用ti

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]

热点排行