Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As LongSLEEP 30
用SetTimer怎么表示?
新年第一帖,祝大家发啦!!

解决方案 »

  1.   

    SetTimer、KillTimer是定时器方面的API函数,它会定时产生系统消息,而Sleep是占用CPU资源片刻。貌似两者不太相干。。
      

  2.   

    我用了SLEEP函数,太占资源了。想用SetTimer来代替。
      

  3.   

    你错啦,sleep是挂起不是占资源,挂起是最节省资源的,加个doevents就行了
      

  4.   

    本帖最后由 bcrun 于 2011-02-20 16:17:35 编辑
      

  5.   

    Sleep 是挂起线程。结果是造成程序假死。但是对于整个系统来说,不占用CPU资源。建议用短暂的 Sleep 配合 DoEvents 实现。
      

  6.   

    个人认为,挂起线程后,本线程的所有东西都中止,包括定时器等。比较适合调用其他exe后的等待……
      

  7.   

    本帖最后由 bcrun 于 2011-02-20 16:16:40 编辑
      

  8.   

    善用sleep 100 循环,你会发现原来还有这么好的东西你不会用
      

  9.   

    用我这个吧,最实惠:
    Option ExplicitPrivate Sub Command1_Click()
            Dim StartTime As Date
            StartTime = Now()
            Do
              Label1.Caption = DateDiff("S", StartTime, Now())
              DoEvents
            Loop Until CLng(DateDiff("S", StartTime, Now())) > 10
            MsgBox "延时10秒到!"End Sub
      

  10.   

    需要延迟0.01秒的话 可以考虑用sleep 1 循环
      

  11.   

    如果想精确延时,就用多媒体线程计时:
    http://blog.csdn.net/chenjl1031/archive/2011/01/31/6170676.aspx
      

  12.   

    飘过~~~~~~~~~
    其实方法很多
    不下五种
    关键是循环中一定要加上DoEvents
      

  13.   

    关键是双屏幕操作,主屏幕的运行速度会受到副屏幕的影响。造成主屏幕的操作会有一点延迟。SLEEP在副屏幕中运行。
      

  14.   

    以下是以毫秒为单位延时过程,实际上精确到10毫秒。请LZ参考。Private Declare Function timeGetTime Lib "winmm.dll" () As LongPublic Sub Delay(MilliSeconds As Long)
        Dim lngTickStore As Long    lngTickStore = timeGetTime    Do While lngTickStore + MilliSeconds > timeGetTime
            Sleep (10)
            DoEvents
        Loop
        
    End Sub
      

  15.   

    既然目的不是让程序闲下来,仅仅是定时的功能,直接用 VB 自带的 Timer 控件不行吗?
    既然主屏界面可以操作,定时精度肯定不高。
      

  16.   

    老鸟,因为副屏幕的功能是给顾客看单和图片循环滚动(加了Timer),当在主屏幕上操作时,
    我估计用了SLEEP函数造成副屏幕抢了主屏幕的速度,这时候主屏幕操作速度就会下降一些。
    在我的机器上CPU是2.20时延迟效果不明显,由于客户的机器的CPU只有1.50GHZ,所以延迟效果看的更加明显。
      

  17.   

    既然已经用 Timer 了,为什么还要用 Sleep?
    定时器就是到点了才做事,其余时间就是闲着。
      

  18.   

    加Timer是更换图片,加Sleep是图片的效果。
      

  19.   

    干脆把图片做成GIF的,这样在需要显示的时候,显示GIF图片,它会自动的切换显示图片,当显示完毕后,就关闭掉GIF。这样就不必担心占用CPU资源了。
      

  20.   

    什么效果?我有段代码,是显示图片的,效果还可以,好像也是CSDN的人写的。
      

  21.   

    http://topic.csdn.net/u/20110214/11/8828a95b-ac16-4737-918d-2812ba440263.html
      

  22.   

    一个很好的延时类,稳定不假死:
    http://download.csdn.net/source/752060