首先定义了一个类
Type
  Tpct = Class(TThread) 
    public
       c:boolean;
    Protected
       Procedure execute;override;
    end;
procedure aa();
var
  pct:Tpct;
begin
  pct:=Tpct.create(false);
end;procedure bb();
begin
  Tpct.create(false);
end;
aa和bb效果一样吗

解决方案 »

  1.   

    有点不同,aa中你可以做线程释放、挂起等操作。bb中你做不到
      

  2.   

    aa和bb效果一样,只是bb不方便操作对象成员
      

  3.   

    一样,只是函数bb的变量是隐藏的.要操作其成员可以利用with语句.
    eg:with Tpct.create(True) do
      begin
        try
          FreeOnTerminate := False;
          Resume;
          ... 
        finally
          Terminate;
        end;
      end;