![]() |
TForm schließen dauert lange
Hallo zusammen,
ich habe eine Form, die dauert ca. 10 Sekunden, bis sie geschlossen wird. Auf der Maske sind sehr viele Komponenten, mit Frames die geschachtelt sind. Gibt es eine einfache Möglichkeit zu erkennen welcher Destroy lange dauert? LG Oliver |
AW: TForm schließen dauert lange
Du brauchst doch nur das Programm im Debugger starten und dann in der Wartezeit auf Pause zu drücken. Dann schaust du nach, was der erste Thread in der Liste gerade tut. Das musst du ggf. ein paarmal wiederholen, falls das nicht gleich eindeutig ist.
Viele Komponenten heißt aber auch viele Benachrichtigungen usw., die da geschickt werden. Das kann schon dauern. |
AW: TForm schließen dauert lange
Zitat:
Mein Idee wäre eher sowas wie sich in den TComponent.Destroy zu hängen. Und dann quasi Zeit merken, inherited Destroy aufrufen, Dauer berechnen, ausgeben. Ich meine mich auch zu entsinnen, dass ich mal irgendwo über einen solchen Code gestolpert bin, wie man sich in eine Methode hängt. Leider finde ich nichts passendes bei Google. |
AW: TForm schließen dauert lange
Verwendest Du zufälligerweise TMS-Komponenten auf der Form?
|
AW: TForm schließen dauert lange
Zitat:
Sonst sind es nur DevExpress Sachen. |
AW: TForm schließen dauert lange
|
AW: TForm schließen dauert lange
Zitat:
Wenn du auf Pause gehst und das Programm wirklich beim Entladen des Formulars ist, dann musst du dort auch landen. Vielleicht ist es nicht gleich die Stelle, die lange dauert, aber dort landen musst du. Kannst du von dem Stacktrace einfach einmal einen Screenshot posten? |
AW: TForm schließen dauert lange
Mal AQTime oder Ähnliches benutzen?
Nee, man landet nicht immer automatisch im Hauptthread :(, aber ins FormCreate, oder besser noch als eine der ersten Zeilen, vor
Delphi-Quellcode:
, in die DPR:
Application.Run;
Delphi-Quellcode:
TThread.NameThreadForDebugging('MainThread');
Und endlich mal Emba beibringen, dass es von Haus aus ins Programm gehört (direkt in die Initialisierung der RTL) und dass sie endlich mal, nach vielen vielen vielen Jahren, die neue API von Windows benutzten sollen, denn deren eigener Dreck arbeitet mit einer stillen Exception und wenn man den Debugger erst später anhängt, dann weiß der Debugger nichts von diesem Namen. |
AW: TForm schließen dauert lange
Zitat:
|
AW: TForm schließen dauert lange
Ich schon einige Male, aber häufiger dann, wenn man sich nachträglich mit dem Debugger anhängt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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