Einzelnen Beitrag anzeigen

silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#9

Re: Thread terminated nicht, obwohl OnTerminate aufgerufen

  Alt 11. Apr 2008, 07:10
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:
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat