Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Thread innerhalb einer Komponente erzeugen und beenden

  Alt 24. Mai 2006, 12:27
Delphi-Quellcode:
constructor TTwConnection2SvrThread.Create(ParentComp: TTestComp; TcpCon: TIdTcpClient);
begin
  inherited Create(True);
  FreeOnTerminate := True;
  fParent := ParentComp;
  fTcpCon := TcpCon;
end;

procedure TTwConnection2SvrThread.Execute;
begin
  fSendCS := TCriticalSection.Create;

  while (not Terminated) and fTcpCon.Connected do
  begin
    // do some work ...
  end;

  if fTcpCon.Connected then
    try
      // Send Logout Command
      fTcpCon.WriteLn('QUIT');
      fTcpCon.Disconnect;
    except
    end;

  fSendCS.Free;
end;
So sollte es gehen. Der Thread raeumt am Ende des Execute einfach selber auf.
Sollte fSendCS nur im Execute gebraucht werden, so kann es durchaus auch eine lokale Variable von Execute sein.
  Mit Zitat antworten Zitat