Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#10

AW: TThread und kein Ende in Sicht...

  Alt 7. Mär 2019, 07:49
Wenn du den Text der Hilfe auch beherzigst, und zwar ganz exakt und penibel
Zitat:
.. fordert die Methode Terminate nur an, dass der Thread beendet wird. So kann der Thread vor Beendigung noch sämtliche Bereingungen durchführen.
Es soll eben NICHT beim Aufruf der Terminate Methode bereinigt werden (so wie du das aber machst), sondern der Thread soll damit signalisiert werden, sobald es geht sich beenden und die Bereinigung durchführen.

Kleine Gedankenstütze wie das gedacht wäre
Delphi-Quellcode:
procedure TMyThread.Execute;
var
  SomeInstance: TObject;
begin
  SomeInstance := TObject.Create;

  while not Terminated do
  begin
    // der Thread macht hier seine Arbeit
  end;

  // Aufräumen
  SomeInstance.Free;
end;
Nachtrag:

Das Aufrufen von Terminate vom ThreadKontext selber ist auch total überflüssig. Die Terminate-Methode soll eine Möglichkeit geben, dem laufenden ThreadKontext zu signalisieren, dass er sich doch bitte beenden soll (sobald als möglich).

Also das ist wie wenn dich jemand darum bittet, dein aktuelles Telefongespräch zu beenden. Würdest du dich auch selber bitten das Gespräch zu beenden?

Geändert von Schokohase ( 7. Mär 2019 um 08:00 Uhr)
  Mit Zitat antworten Zitat