我是用CreatThread创建的子线程,要在子线程中实现定时监测并口输入的一个触发信号,需要用到timer控件,请问该如何将timer控件添加到子线程中,或者说怎样实现这种功能?多谢大家帮忙!

解决方案 »

  1.   

    timer控件需要窗口句柄的,因为定时到了的话会发消息给窗口,但是在VB,CreatThread创建的线程如果跟UI操作的话很不稳定,所以最好在UI里设置Timer ,时间到了的话,使用全局变量等方法来通知辅助线程。
      

  2.   

    不知道这样行不行
    Option ExplicitPublic lTimerId 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 LongPrivate Sub TimerProc(ByVal lHwnd As Long, ByVal lMsg As Long, ByVal lTimerId As Long, ByVal lTime As Long)
    '处理程序
    End SubPublic Sub StartTimer(lMinute As Long)
        lTimerId = SetTimer(0, 0, lMinute, AddressOf TimerProc)
    End SubPublic Function StopTimer(lTimerId As Long) As Long
        StopTimer = KillTimer(0, lTimerId)
    End Function