Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#12

Re: Thread innerhalb einer Komponente erzeugen und beenden

  Alt 24. Mai 2006, 12:52
Wieso unelegant? Wenn du am Ende deiner Arbeit aufraeumst, dann ist das doch noch Arbeit.

Du denkst einfach zu kompliziert. Der OnThreadEnded ist Unsinn und fliegt weg.
Delphi-Quellcode:
destructor TTestComp.Destroy;
begin
  // cleanup everything
  // ...

  StopThread;
  
  inherited Destroy;
end;

procedure TTestComp.OnConnection2SvrThreadEnded(Sender: TObject);
begin
  FCon2SvrThd := Nil;
end;

procedure TTestComp.StartThread;
begin
  FCon2SvrThd := TTwConnection2SvrThread.Create(Self, FTcpCon);
  FCon2SvrThd.OnTerminate:= OnConnection2SvrThreadEnded;
  FCon2SvrThd.Resume;
end;

procedure TTestComp.StopThread;
begin
  if Assigned(FCon2SvrThd) then
  begin
    FCon2SvrThd.Terminate;
    FCon2SvrThd.WaitFor;
    FCon2SvrThd := nil;
  end;
end;
  Mit Zitat antworten Zitat