直接调用Windows Api,比如Postmessage之类的

解决方案 »

  1.   

    申明:function TerminateThread(hThread:THandle;dwExitCode:DWORD);
    TerminateThread(MyHosedThread.Handle,0)
    ............
      <delphi'5 developer guide>
      

  2.   

    用ExitThread比较好,会给你释放资源,
    用TerminateThread强行结束线程可能导致资源泄漏,一般不要使用!
      

  3.   

    procedure TYourThread.Execute;
    begin
      while .... do begin
        ....//Do your want to do
        if Terminate then break;  //循环检查Terminate
      end;
    end;
      

  4.   

    推荐通过让线程运行结束返回的方法结束线程.
      仅当你确切知道该线程的作用和该线程在结束时可能运行的代码的时候调用TerminateThread 来结束线程. 不然后果是它的初始化堆栈没有被释放, 占用的临界区没有释放,连接到该线程的 DLLs 没有知道该线程要结束, 而且如果目标线程管理着一个共享 DLL 的全局状态, 则该 DLL 的状态可能被毁坏, 影响到其他的 DLL 用户.