RT。
我这里用程序生成出TIMER用INDEX区分每个的事件。
用了Public Sub SleepitB(ByVal lngMillisecond As Long, UserId)
    Dim lngStartTime As Long, lngProcTime As Long
    Dim wMsg As Msg
    lngStartTime = timeGetTime()
        Randomize
        lngMillisecond = Int(lngMillisecond) + Int(Rnd * 150)
    Do
        GetMessage wMsg, 0&, 0, 0
        TranslateMessage wMsg
        DispatchMessage wMsg
        lngProcTime = timeGetTime - lngStartTime    Loop While lngProcTime < lngMillisecond
End Sub做延时,所有TIMER都可以正常工作。互不干扰。但是在TIMER的TIMER事件中调用了基它函数。里面如果有大量循环的话。所有TIMER都会停止。等待这个循环结事才会运行。有什么办法。能让所有的TIMER无论调用。还是执行什么。都不干扰呢。。我本想用多线程来做。但是 如果用多线程循环操作,就像TIMER这样。。而又不会假死?

解决方案 »

  1.   

    跟它没有关系。如果加上DOEVENTS也是这个效果。
      

  2.   

    但是在TIMER的TIMER事件中调用了基它函数。里面如果有大量循环的话。所有TIMER都会停止。等待这个循环结事才会运行。 准确的说是在大循环中加入DoEvents,不知行否?
      

  3.   

    这个不好办吧。在 Timer() 事件中,无论多少 DoEvents 也不会达到 Timer()事件 重入的效果。
      

  4.   

    在TimerA中只启动TimerB,在TimerB中执行耗时操作即可,但要注意TimerB别重入。