窗体MainFrm上有3个指示器shp_M1、shp_M2、shp_M3用来指示连接的状态;'窗体中代码如下:
Private Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, LpthreadId As Long) As Long
Private Declare Function ResumeThread Lib "kernel32" (ByVal hThread As Long) As Long
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As LongPrivate Const CREATE_SUSPENDED = &H4 '线程挂起常量Dim threadHandle As LongPrivate Sub Command1_Click()
    myThread
End SubPrivate Sub Form_Unload(Cancel As Integer)
    
    TerminateThread threadHandle, 0
    Unload Me
    
End SubPrivate Sub myThread()    On Error Resume Next
  
    
    Dim LongStackSize As Long, LongCreationFlags As Long, LpthreadId As Long, LongNull As Long
  
  
    On Error Resume Next
  
    LongNull = 0
    LongStackSize = 0
    LongCreationFlags = CREATE_SUSPENDED 'suspend thread after creation
  
    'create thread
     threadHandle = CreateThread(LongNull, LongStackSize, AddressOf myModule, LongNull, LongCreationFlags, LpthreadId)
                    
    ResumeThread threadHandle
    
End Sub'模块中代码如下:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Public Sub myModule()
    
    Do
        
        Sleep (500)
        MainFrm.shp_M1.BackColor = RGB(0, 0, 0)
        MainFrm.shp_M1.Refresh
        Sleep (5)
        If MainFrm.Winsock_1.State <> sckConnected Then
            MainFrm.shp_M1.BackColor = RGB(255, 0, 0)
            MainFrm.shp_M1.Refresh
        ElseIf MainFrm.Winsock_1.State = sckConnected Then
            MainFrm.shp_M1.BackColor = RGB(0, 255, 0)
            MainFrm.shp_M1.Refresh
        End If
        
        Sleep (500)
        MainFrm.shp_M2.BackColor = RGB(0, 0, 0)
        MainFrm.shp_M2.Refresh
        Sleep (5)
        If MainFrm.Winsock_2.State <> sckConnected Then
            MainFrm.shp_M2.BackColor = RGB(255, 0, 0)
            MainFrm.shp_M2.Refresh
        ElseIf MainFrm.Winsock_2.State = sckConnected Then
            MainFrm.shp_M2.BackColor = RGB(0, 255, 0)
            MainFrm.shp_M2.Refresh
        End If
        
        Sleep (500)
        MainFrm.shp_M3.BackColor = RGB(0, 0, 0)
        MainFrm.shp_M3.Refresh
        Sleep (5)
        If MainFrm.Winsock_3.State <> sckConnected Then
            MainFrm.shp_M3.BackColor = RGB(255, 0, 0)
            MainFrm.shp_M3.Refresh
        ElseIf MainFrm.Winsock_3.State = sckConnected Then
            MainFrm.shp_M3.BackColor = RGB(0, 255, 0)
            MainFrm.shp_M3.Refresh
        End If
        
    Loop
    
End Sub结果在调试的时候关闭了窗体,程序仍然在运行,感觉是死机了,可能是创建的线程根本没有关掉,请教高手如何解决?
谢谢~~