我写的程序想让一段代码执行一段时间后在去执行别的任务,但这段代码已经在TIMER里了,用SLEEP程序就会挂起,所以我放弃使用SLEEP了。还有什么方法能实现等待延时呢?谢谢大家

解决方案 »

  1.   

    Public Sub BKWait(HowManySecs)
    '   pause for HowManySecs seconds
        Dim EndWait
        EndWait = DateAdd("s", HowManySecs, Now)
        While Now < EndWait
            DoEvents
        Wend
    End Sub
      

  2.   

    minajo21(大眼睛) :                 谢谢你,但我实在看不懂这段代码,你能给我解释一下吗?谢谢
      

  3.   

    Public Sub BKWait(HowManySecs)
    '   pause for HowManySecs seconds                '执行等待X秒
        Dim EndWait                   
        EndWait = DateAdd("s", HowManySecs, Now)      设定时间=将当前时间+所需等待的秒数
        While Now < EndWait                           当前时间<所设定时间就循环
            DoEvents                                  将控制权交给系统
        Wend
    End Sub
      

  4.   

    哪里看不懂?Now
    当前系统时间DateAdd...
    加上一段时间间隔
      

  5.   

    Private Declare Function GetCurrentTime Lib "kernel32" Alias "GetTickCount" () As LongDim LngOld As Long
    LngOld = GetCurrentTime
    Do While (GetCurrentTime - LngOld) <= 3000
        ....                
        DoEvents
    Loop
      

  6.   

    Sub Delay_gSub2(pSngDelayTime As Single)
       '延时, 中间不处理事件
       Dim lSngStartTime As Single
       lSngStartTime = Timer
       Do While Abs(Timer - lSngStartTime) < pSngDelayTime
       Loop
    End Sub
      

  7.   

    '我来解释一下吧:))
    假如要停顿100000秒
    const T = 100000
    dim T1 as long
    dim T2 as longForm_load()中加如下代码
       T1 = hour(now)*3600 + minute(now)*60 + second(now)Timer1_Timer()
       T2 = hour(now)*3600 + minute(now)*60 + second(now)
       if abs(T2-T1) >= T then
          msgbox "到时间了,请你起来!!"
       end if
      

  8.   

    这些都很占CPU的使用率,但是我也再找其他的好方法,如果你有轻通知我,谢谢!
      

  9.   

    用循环才占用CPU,我的只是几句代码, 不会占用多少CPU的。不信试试就知道了。