各位高手:A.同一线程如何自动启动,运行,终止.....再自动启动,运行,终止.......如此不断循环B.另外,线程如何完全终止?下例中不能终止线程:Option Explicit
Dim hThread As Long
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 CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Private Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
Private Declare Function SuspendThread Lib "kernel32" (ByVal hThread As Long) As Long
Private Declare Function TerminateThread Lib "kernel32" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As LongPublic Sub AddList()
    Dim i%, lTick%
    For i = 0 To 5000
        List1.AddItem Str(Time)
        lTick = GetTickCount
    Next
    
    While GetTickCount - lTick < 500
    WendEnd SubPrivate Sub Command1_Click()
   
    Dim hID As Long
    hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf AddList, ByVal 0&, ByVal 0&, hID) 
End SubPrivate Sub Command2_Click()
    TerminateThread hThread, 0
    或CloseHandle hthread
End Sub
都无法终止

解决方案 »

  1.   

    线程退出是个问题如果线程有什么没完成的计算什么,一定要完成,退出线程不能单纯的结束,最好是设置标志并发送消息。可以用这些函数实现,createevent ,postthreadmessage
    peekmessage ......
      

  2.   

    线程退出是个问题如果线程有什么没完成的计算什么,一定要完成,退出线程不能单纯的结束,最好是设置标志并发送消息。可以用这些函数实现,createevent ,postthreadmessage
    peekmessage ......
      

  3.   

    线程退出是个问题如果线程有什么没完成的计算什么,一定要完成,退出线程不能单纯的结束,最好是设置标志并发送消息。可以用这些函数实现,createevent ,postthreadmessage
    peekmessage ......