Data = class(TThread)  我做了一个线程类   在运行中可能被free了   其他VCL调用时   如何判断这个线程类是不是还在

解决方案 »

  1.   

    if Assigned(data) then
    楼主似乎把类和对象搞混了.
      

  2.   

    楼上的代码无效。FreeOnTerminated他释放时候不会把指针设为nil,所以Assigned还是为True.我的做法是在Destroy事件里给线程管理单元一个通知。
      

  3.   

    你应该能知道线程的handle吧
    用WaitForSingleObjectDWORD WaitForSingleObject(    HANDLE hHandle, // handle
        DWORD dwMilliseconds  // 超时设置
       );
    返回值  WAIT_OBJECT_0:表示线程变为了已通知状态;   
      WAIT_TIMEOUT:表示超时返回;   
      WAIT_FAILED   :表示是不个错误无效的Handle;   
      

  4.   

    GetExitCodeThread用它判斷當前線程的狀態