Zitat von
alleinherrscher:
Okay, das stimmt natürlich, Terminate ist eine private property... Du könntest im Hauptprogramm "TThread.OnTermiante" verwenden, um eine boolsche variable zu setzten die du in CloseQuery abfragst.
Danke Dir, das mit der Boolschen Variable hab ich dann auch so gemacht. Ich hatte halt gehofft, eine Variable sparen zu können, wenn ich Thread.Terminated abfrage.
Zitat von
alleinherrscher:
Man kann bestimmt auch dafür sorgen, dass Terminated "public" wird, aber dafür muss man das etwas anders machen... (grade überlegt wie das geht)
Irgendwie war ich der Meinung, das würde so funktionieren, peinlich peinlich
Zitat von
wido:
Hmm, stimmt Terminated ist Private. Naja, prinzipiell könntest Du halt WaitFor nutzen. Also sowas in der Art:
Delphi-Quellcode:
procedure TfMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
// Wenn DemuxThread existiert, warten wir bis der Thread nicht länger ausgeführt wird
if Assigned(DemuxThread) then DemuxThread.WaitFor;
end;
WaitFor wartet aber laut
OH, bis der Thread beendet wurde, somit würde ich ja die ganze Zeit im CloseQuery festsitzen, bis der Thread irgendwann terminiert
Zusammenfasssend: