Speicher-Problem mit Frame und Navigate bei WPF

  • WPF

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Jan@81.

    Speicher-Problem mit Frame und Navigate bei WPF

    Hallo zusammen,

    Ich habe ein Problem mit dem WPF-Control "Frame".
    Ich nutze das Frame-Objekt in meinem MainWindow, um hiermit verschiedene Pages anzuzeigen in meiner Desktop-App. Problem ist, dass bei jedem "Navigate" zu einer neuen Seite der Speicher nicht wirklich freigegeben wird, so dass die Anwendung irgendwann über 200 MB reserviert hat.
    1. Ist das überhaupt schlimm?
    2. Kann man das verhindern?

    Hat jemand eine Antwort?

    Hier ein kleiner Code-Auszug:

    VB.NET-Quellcode

    1. Dim NewPage As New Overview1
    2. FrameAnsicht.Navigate(NewPage)
    3. FrameAnsicht.CommandBindings.Clear()


    Vielen, lieben Dank im voraus.
    Habe nun eine Lösung hierzu gefunden:

    VB.NET-Quellcode

    1. Private Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal process As IntPtr, ByVal minimumWorkingSetSize As Integer, ByVal maximumWorkingSetSize As Integer) As Integer
    2. Private Sub FlushMemory()
    3. GC.Collect()
    4. GC.WaitForPendingFinalizers()
    5. If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
    6. SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
    7. End If
    8. End Sub


    ​Dies räumt den Speicher vollständig auf.