AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Der aktuelle Prozess verwendet alle Handles EOSError
Thema durchsuchen
Ansicht
Themen-Optionen

Der aktuelle Prozess verwendet alle Handles EOSError

Ein Thema von JYPDWhite · begonnen am 11. Aug 2014 · letzter Beitrag vom 13. Aug 2014
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Der aktuelle Prozess verwendet alle Handles EOSError

  Alt 12. Aug 2014, 22:41
Generell kann man sagen, wenn man sich die Frage stellt: "Was ist der Maxdimalwert von XYZ", dann macht man was falsch. Weil in der Regel kommt man seltenst an die Grenze, wenn man es richtig macht.

Ich könnte mir vorstellen, dass du in einer Schleife GDI-Handles erzeugst, sie aber nicht wieder frei gibst. Und dann geht das in der Schleife ratz-fatz. Und du bist am Ende.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
JYPDWhite

Registriert seit: 29. Sep 2010
28 Beiträge
 
#2

AW: Der aktuelle Prozess verwendet alle Handles EOSError

  Alt 13. Aug 2014, 10:23
Die Idee mit dem Process Explorer war gut.
Da sieht man dass es nicht die GDI-Handles sind sondern die USER-Objects.
Ein Leak an Handles scheint es auch nicht zu sein. Denn wenn ich den Testdatensatz laden steigen die User-Objects auf knapp 9,8k an. Wenn ich dann im Programm auf Datei --> Neu gehen sinken die Werte wieder auf praktisch die selben Werte (vielleicht 300 Handles mehr) wie direkt nach dem Programmstart.
Das Problem scheint zu sein dass wir in dem Programm an mehreren Stellen eine Scrollbox haben und in diese kann man weitere Zeilen mit Eingaben einfügen indem man auf einen Button klickt.
Das habe ich gerade mal nachgestellt und von Hand dort hunderte Einträge hinzugefügt. Dabei steigen die User-Objects immer weiter an bis man dann irgendwann bei 10k ist und das Programm abstürzt.

Nun habe ich natürlich das Problem dass ich das Problem irgendwie beheben muss. Eine Idee die ich hätte wäre die Karteireiter die gerade nicht sichtbar sind auch nicht im Speicher zu halten (und damit ja auch keine Handles dafür zu brauchen) Jedoch kommt da zum tragen dass das Programm zum großen Teil kein Datenmodell hat bzw. die Werte direkt aus der Maske verwendet werden.
  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 03:48 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