Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Thread sauber Beenden ? Handle ungültig.

  Alt 29. Jan 2008, 19:43
Ich hab' nicht genau durchschaut, was Du da tust, mir ist aber etwas aufgefallen.
Im Thread deklarierst Du
Delphi-Quellcode:
private
    PDHInfo : Array[1..4] of TPDHInfo;
Im execute rufst DuMainForm.UpdatePDH(PDHInfo); auf. Das finde ich etwas komisch. Bei der Variante FreeOnTerminate machst Du PDHInfo platt, obwohl Du evtl. noch im synchronize() steckst, das ist riskant. Ob das auch ohne FreeOnTerminate so ist, kann ich nicht überblicken, aber generell: eine private-Variable eines nachgeordneten Thread an den Hauptthread zu übergeben ist mir unheimlich.
Warum deklarierst Du PDHInfo nicht public im HauptThread?

Den Aufruf von PDHCloseQuery etc. bekommst Du meiner Meinung nach hin, indem Du die while not-Schleife in eine try..finally-Struktur packst - jedenfalls mache ich das so. Dann kannst Du im finally reproduzierbar aufräumen.

Grüße, Messie
  Mit Zitat antworten Zitat