Announcement

Collapse
No announcement yet.

Formulare richtig schließen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formulare richtig schließen

    Hi,

    ich habe eine Applikation, die einzelne Forms öffnet, und nun habe ich das Problem, wenn ich einige dieser Forms schließe wird der Speicher nicht wieder freigeben, obwohl ich diese versucht habe mit f.close() oder f.dispose() zum Freigeben der Speicher zu zwingen.

    Kann mit jemand helfen?

    Danke
    -----------------------------------------------------------

    # Man kann sein Geld auch zum
    # Windows hinauswerfen!!!

    () ()
    (^^)
    (n n)
    -----------------------------------------------------------

  • #2
    Woran merkst du das? Und bedenke das du in VB.NET einen Garbage Collector hast der nicht sofort den Speicher freigibt. Und die Speicheranzeige im Taskmanager kann man eh vergessen.

    Comment


    • #3
      Hi,

      erstmal danke für die schnelle Antwort.
      Ich merke es daran, dass ich mit 1. vom GC direkt den allokierten Speicher meines Programmes mit ausgebe und 2. wenn ich mehrere mal ein und die selbe Aktion ausführe, dass dann immer mehr Speicher belegt wird und das geht dann bis zur OutOfMemoryExcaption

      :-) ich glaube anhand von 2. kann ich mir sicher sein, dass der Speicher vollläuft
      -----------------------------------------------------------

      # Man kann sein Geld auch zum
      # Windows hinauswerfen!!!

      () ()
      (^^)
      (n n)
      -----------------------------------------------------------

      Comment


      • #4
        Klingt jetzt ein bisschen weit hergeholt, aber hast Du vielleicht die Dispose-Anweisung Deines Formulars überschrieben, ohne am Ende MyBase.Dispose aufzurufen? (Nur um nach Sherlock Holmes das Mögliche auszuschließen, damit das Unmögliche übrigbleibt, oder wie der Spruch hieß... )

        Ansonsten: was passiert denn, wenn Du den GC.Collect explizit aufrufst? Wird der Speicher denn dann wenigstens freigegeben? Wenn nicht müsstest Du mal nachsehen, welchen anderen Fenstern und Applikationen Du einen Handle auf das Form übergeben hast, und dafür sorgen, dass diese Elemente das Fenster freigeben.

        Gruß
        Martin

        Comment


        • #5
          Hast du mal versuche bei den Ereignissen:

          - FormClosed
          - FormClosing

          die Anweisung

          - Me.Dispose(True)

          einzufügen. Wenn nicht versuch dass mal, vielleicht hilfts.

          Comment

          Working...
          X