Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
sorry das verstehe ich nicht.
Ich sage allen Threads ".Terminate" und warte dann auf deren Beendung.
Danach gehe ich alle Threads die Assigned sind durch und prüfe die Eigenschaft "FreeOnTerminate" und nur die, wo diese Eigenschaft auf "False" steht, gebe ich mit FreeAndNil frei...
Gruß
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
ok stimmt aber ich Frage natürlich auch auf Assigned ab, bevor ich das FreeOnTerminate abfrage...
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
Warum?
Terminieren soll doch jeder nur das Freigeben wird doch über FreeOnTerminate gesteuert und ich gebe eben nur die frei, die auch FreeOnTerminate = False haben.
Gruß
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
Es werden alle Threads mit ".Terminate" beendet und dann gewartet, dass sich alle als Beendet melden. Dann werden nur die Threads mit FreeAndNil aufgerufen, welche "FreeOnTerminate" = False haben (frage hierzu den Property ab, da diese Eigenschaft an einer anderen Stelle (im Thread selber) gesetzt wurde).
Müsste so in Ordnung sein...
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
ja mache ich so. Ich sage erst Terminate und dann warte ich auf Beendung und dann erst das FreeAndNil.
Ich muss mich da mal reindebuggen welcher Thread den "Fehler" verursacht
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
Ja ist es :-)
Habe jetzt mal das FreeAndNil für alle Threads rausgenommen (beim Beenden) und dann wird das FormDestroy auch aufgerufen...
Muss jetzt mal rausfinden, welcher Thread beim Freigeben und Nil setzen dazu führt, dass FormDestroy nicht mehr aufgerufen wird.
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
Nein, diese werden alle beendet und freigegeben.
Forum: Programmieren allgemein
Delphi
by Alex_ITA01,
19. Feb 2013
Hallo zusammen,
ich habe ein komisches Phänomen.
Ich habe zwei relativ große Anwendungen mit sehr vielen Formularen, Threads usw.
Eine der beiden Anwendungen kann ich ganz "normal" beenden (FormDestroy wird aufgerufen).
Bei der zweiten Anwendung habe ich das Problem, dass das FormDestroy der MainForm nicht aufgerufen wird. Ich habe mir BreakPoints ins FormClose und FormDestroy rein...