Hi Andreas,
danke für das erklären!
Ich habe gerade mal etwas rumgesucht und finde viele Beispiele (z.B. auch im artverwandten
Tutorial zu TMREWS und dem zugehörigen
CodeCentral Item), wo explizit im Source steht:
Delphi-Quellcode:
destructor TWorkerThread.Destroy;
begin
Main.ThreadDone;
//Legit to call VCL, since we're back in main thread
inherited;
end;
Das ganze von Justin Swett, inzwischen Sr. QA Engineer bei CG. So etwas verwirrt...
Also die Objekte besser im .Execute erzeugen und freigeben.
Gruß Assertor
Edit: Nachtrag, jetzt sehe ich wieder klar... Wenn das TThread Objekt per .Free freigeben wird, läuft das .Destroy im MainThread Kontext ab, bei FreeOnTerminate innerhalb des Threads. Logisch...