主线程开了一个做死循环的线程(使用线程类)
请问如何中止做死循环的线程?注:使用Terminate, Suspend, Free 都不能成功中止

解决方案 »

  1.   

    将线程的FreeOnTerminate设置为true,然后再用Terminate
      

  2.   

    netdis(我是一条虫):
      谢谢提醒,但是不行
      

  3.   

    将线程的FreeOnTerminate设置为true. 
    在线程的循环中写上: if Terminated then Break;
    最后再调用Terminate.
      

  4.   

    调用线程之前加上application.ProcessMessages
      

  5.   

    加了application.ProcessMessages也不行
    难道不能强制结束一个线程? 头痛...
      

  6.   

    使用TerminateThread()终止线程(API)
    TerminateThread(YouThread.Handle,0);
      

  7.   

    Terminate是可以结束线程的,但Terminate的实质是什么?见VCLprocedure TThread.Terminate;
    begin
      FTerminated := True;
    end;如果你的线程中没有
    if Terminated then Break;
    或者
    if Terminated then Exit;
    这类的语句,线程又怎么结束呢?