delphi 不断创建线程,销毁线程,程序占用线程却不断增加,有没有朋友遇到并解决有关问题

delphi 不断创建线程,销毁线程,程序占用线程却不断增加,有没有朋友遇到并解决问题?
之前在一个复杂的软件发现这个问题,后来专门编写了一个非常简单的例子,这个问题却存在,不知道如何解决。我用fastmm进行内存泄漏检查 ,没有发现可疑的内存泄漏,不知道有没有朋友知道如何解决这个问题?我的代码很简单
1,创建一个TThread对象,这个线程经过短暂的延时后退出,代码如下
constructor TTcpCmdThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
end;

destructor TTcpCmdThread.Destroy;
begin

  inherited;
end;

procedure TTcpCmdThread.Execute;
var
    i:Integer;
begin
  { Place thread code here }
  //self.FreeOnTerminate := True;
  i:=0;
  while(True)do
  begin
      Inc(i);sleep(1);
      if i > 20 then Break;
  end;

end;

2、主窗口用一个定时器定时创建新的线程,并在线程结束后销毁;
procedure TForm1.playcmd;
begin
    FTcpCmdThread:=TTcpCmdThread.Create(true);
    FTcpCmdThread.Resume;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
    ret:Integer;
begin

    if(fstatus = 0)then
    begin
        if(ftcpcmdthread = nil)then
        begin
            playcmd();
            fstatus := 1;
        end;
    end
    else if fstatus = 1 then
    begin
        ftcpcmdthread.WaitFor;
        ftcpcmdthread.Free;
        ftcpcmdthread:=nil;
        fstatus:=0;
        Inc(fcount);
        label1.Caption := IntToStr(fcount);
    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    fstatus := 0;
    fcount := 0;
end;


------解决思路----------------------
“程序占用线程却不断增加”这句看不明白,请解释下。
------解决思路----------------------
  ftcpcmdthread.WaitFor;
  ftcpcmdthread.Free;
  ftcpcmdthread:=nil;


这段代码在主线程调用WaitFor方法。此时线程要在Handle数组中增加一个SyncEvent,然后循环等待,直到线程结束。此处出现死锁了,不再执行释放,造成内存大量被占用。
个人意见,仅代参考。





------解决思路----------------------
我这边并没有什么问题啊!
------解决思路----------------------
依据你的代码,还原后。Win7 32位下运行下,跟踪代码 status 在0,1之间不断切换。

  if (fstatus = 0) then
  begin
    if (ftcpcmdthread = nil) then
    begin
      playcmd();
      fstatus := 1;
    end;
  end
  else
    if fstatus = 1 then
    begin
      ftcpcmdthread.WaitFor;
      ftcpcmdthread.Free;
      ftcpcmdthread:=nil;
      fstatus:=0;
      Inc(fcount);
      label1.Caption := IntToStr(fcount);
    end;

未见内存无序增加。