请问 1:TThread 的 terminate方法怎么用? 
        
        是不是当你想停止一个线程时,就直接调用线程对象的 terminate 这个方法,当terminate         方法被调用后 ,线程的 terminated 属性的值被赋为 true      2:我在delfhi 安装目录下 demos\Internet\NetChat 下的例子中看到:线程的派生类
       
       (TClientDataThread)里定义了 Procedure terminate; 方法,但是就是没看到它被调用        过,这是为什么,既然定义了就肯定有它的用处,知道的朋友告诉我一声(为什么       
       
        terminate; 方法没被调用???)
     3:一个线程执行完后---是否会自动关闭?         如果不会自动关闭那么需要我们去关闭吗,

解决方案 »

  1.   

    是不是 terminate 方法只是 将线程的terminated 的值设置成 true ,
    而真正能让线程终止的 是线程的terminated属性 来决定的,当terminated的值 等于 true 时,线程是立即停止吗,
      

  2.   

    1:terminate调用是terminated设置为true,在你的Execute中的循环中一般应该这样用while not Terminated do
    begin
      线程循环
    end;2:因为该线程中没有线程循环,线程执行一次自动terminate3:.FreeOnTerminate := True;
      

  3.   

    当terminated的值 等于 true 时,线程是立即停止吗
    -------------------
    当terminated的值 等于 true 时,线程并不立即停止,需要在线程中判断terminated是否为true,当为true的时候主动退出线程
      

  4.   

    那 线程 每间隔多长时间 去检测 terminated
      

  5.   

    一般在线程中可以sleep(10)或更少sleep(1)