AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastMM4 und Beenden der Application

Ein Thema von AJ_Oldendorf · begonnen am 28. Jan 2013 · letzter Beitrag vom 29. Jan 2013
Antwort Antwort
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#1

AW: FastMM4 und Beenden der Application

  Alt 28. Jan 2013, 19:38
In der Anwendung werden relativ viele Threads erstellt, die beim Beenden der Anwendung terminiert werden. Das geschieht über Windows Messages, welche die Threads dann abfragen und sich selber terminieren
Eigentlich müsste deine Anwendung alle laufenden Thread in einer Liste speichern.
Beim Programmende wird dann von jedem Thread die Methode Terminate aufgeraufen.
(Windows Messages würde ich für diesen Zweck nicht verwenden)
Die Threads fragen periodisch das property Terminated ab und beenden sich selber.
Da es einige Zeit dauern kann bis alle Threads reagiert haben sollte der Hauptthread bis zu 3s warten.
Dauert es länger, sollte der Hauptthread weiterlaufen und sich beenden.
Die hängenden Threads werden dann von Windows gewaltsam beendet; was dann natürlich zu Speicher-/Resourcenlecks führt, die aber ebenfalls von Windows entsorgt werden.

Geändert von sx2008 (28. Jan 2013 um 19:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: FastMM4 und Beenden der Application

  Alt 28. Jan 2013, 20:23
Hast du die Unit FastMM vor allen anderen eingefügt?
Das heißt nicht vor allen anderen Units der MainForm, sondern vor allen anderen Units des Hauptquellcodes (Menü/Project/View Source)!

Dann mach FastMM auch keine Fehler.
Und das die Threads nen Speicherleck sind, muss nicht sein, nur in dem Moment halt, wo FastMM anschlägt sind Sie das. Und so wie du sagst entfernst du die Instanzen ja erst beim Beenden des Programms. Auf gut Deutsch, die Threads sind Speicherlecks auch dann, wenn vor dem Beenden des Programm nen ganz anderer Fehler für den Absturz des Programms sorgt, denn genau dann werden Sie ja nicht mehr entfernt.

Ohne jetzt den Quelltext zu sehen kann man aber keine genaueren Angaben machen.
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
423 Beiträge
 
Delphi 12 Athens
 
#3

AW: FastMM4 und Beenden der Application

  Alt 29. Jan 2013, 13:10
Hallo,
ja habe die Unit ganz oben eingefügt.
Ich bin auch schon bisschen weiter gekommen, stehe aber vor einem neuen Problem. Dies kommt aber in einem neuen Thread.

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz