我调用
Private Declare Function timeGetTime Lib "winmm.dll" () As Long Public Sub RecordData(ByVal DelayTime As Long)
     While timeGetTime < Savetime + DelayTime
      然后是做我想做的事情,没有Doevents
    WendEnd Sub
当我调用这个函数时,可以运行
只是我要做别的动作时,如,按别的按钮(本程序中)或切换到别的窗口(电脑上),程序就死掉了这是什么问题,我该如何解决,有没有别的可实现的函数,谢谢!

解决方案 »

  1.   

    Private Declare Function timeGetTime Lib "winmm.dll" () As Long Public Sub RecordData(ByVal DelayTime As Long) 
        While timeGetTime < Savetime + DelayTime 
          然后是做我想做的事情,没有Doevents 
          '加上 Doevents
        Wend End Sub 
      

  2.   

    Doevents后面加个Sleep(1)效果会更好些
      

  3.   

    Doevents 
    sleep(1)
    个人认为这样的组合好用一些
      

  4.   

    循环条件是 timeGetTime < Savetime + DelayTime 那你的Savetime 和 DelayTime  定义在哪里呢?范围又是多少呢?