Hi
Zitat von
Rakshasa:
Gerade nach dem .Create, muß ich da nicht irgendwie den Thread auflösen oder tut er das von selbst?!
Da du FreeOnTerminate auf true setzt, gibt er sich selber frei, sobald die Execute-Methode beendet wird.
Allerdings wäre es sauberer das FreeOnTerminate entweder im ButtonClick zu setzen oder in einem überschriebenen Konstruktor im Thread-Objekt.
Setzen im OnClick:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
MeinThread: TMeinThread;
begin
// Thread angehalten erzeugen, damit er nicht schon zu Ende ist, bevor FreeOnTerminate auf true gesetzt wurde
MeinThread:=TMeinThread.Create(true);
MeinThread.FreeOnTerminate := true;
// Thread-Ausführung starten
MeinThread.Resume;
end;
Außerdem ist die Variable MeinThread ein bisschen ungünstig deklariert, denn nach dem Ende von ButtonClick hast du keine Möglichkeit mehr, auf das Thread-Objekt zuzugreifen.
[EDIT] Execute in Resume geändert - hatte das Execute noch irgendwie im Hinterkopf ... [/EDIT]
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)