Eine Patentlösung habe ich nicht. Ich mache es mir da einfach und implementiere es einfach nur
richtig und schon funktioniert es:
Delphi-Quellcode:
TFooThread = class( TThread )
private
FChair : TChair; // da setzt sich der Thread drauf
protected
procedure Execute; override;
public
constructor Create;
destructor Destory; override;
end;
procedure TFooThread.Execute;
begin
while not Terminated do
FChair.SitDown(); // exessive Verwendung der TChair-Instanz
end;
constructor TFooThread.Create;
begin
FChair := TChair.Create; // bevor irgendwas losläuft, erzeugen wir die TChair-Instanz
inherited Create( False ); // der Thread selber wird erzeugt
end;
destructor TFooThread.Destroy;
begin
// Der Thread kann jetzt noch aktiv sein,
// darum dürfen wir ihm jetzt nicht den Stuhl unter dem Hintern wegziehen
inherited;
// Jetzt ist der Thread gesichert beendet
// und nun kann die TChair-Instanz bedenkenlos aufgeräumt werden
FChair.Free;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)