当前位置:编程学习 > VB >>

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Call Sleep(1)

延迟最小的单位是多少啊?
有没有比sleep(1)小的? --------------------编程问答-------------------- sleep(0)啊,去看msdn上sleep函数说明。 --------------------编程问答-------------------- 飘过 --------------------编程问答-------------------- 那你就自己做个吧,用几个api读取cpu时钟等实现,能到微妙级,sleep是毫秒级的!

Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long

Public Enum DELAY_UNIT
    us = 1000000
    ms = 1000
    s = 1
End Enum

Public Sub Delay(curTime As Currency, udtUnit As DELAY_UNIT)
    Dim Ctr1 As Currency, Ctr2 As Currency, Ctr3 As Currency, Freq As Currency
    QueryPerformanceFrequency Freq  '获取cpu的频率
    QueryPerformanceCounter Ctr1    '获取cpu走过的周期
    Do
        QueryPerformanceCounter Ctr2  '获取cpu走过的周期
        Ctr3 = (Ctr2 - Ctr1) * udtUnit / Freq
        If Ctr3 > curTime Then 
            Exit Do
        End If
    Loop
End Sub
--------------------编程问答-------------------- 路过..... --------------------编程问答-------------------- 瞟过... --------------------编程问答-------------------- 同飘... --------------------编程问答-------------------- 再飘 --------------------编程问答-------------------- 继续飘 --------------------编程问答-------------------- 有意思
补充:VB ,  API
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,