Ich habe eine C# -Anwendung, bestehend aus einem Pivot mit mehreren Pivotitems. Die normalen Pivotitems werden ordnungsgemäß entladen und verlieren keinen Speicher. Bei zwei der Objekte habe ich jedoch Zeichnungsoberflächen, auf denen ich Monogame zum Rendern von 3D-Modellen verwende. Nach dem Entladen und Laden ihrer Pivots versuche ich die "Game" - Instanzen komplett zu zerstören und dann komplett neu zu erstellen (hauptsächlich, weil Monogame es momentan nicht erlaubt auf zwei Flächen zu zeichnen und weil sie viel Speicher benutzen und es gibt nicht genug für beide).C# Wie Objekt vollständig aus dem Speicher entfernen
Mein Problem kommt in, wenn ich das Xamlgame entsorgen, das beim Laden erstellt wird, gibt es nicht den gesamten Speicher frei, den es verwendete. Das bedeutet, dass ich jedes Mal, wenn ich das Xamlgame neu erstellt habe, mehr und mehr Speicher verwende, bis nichts mehr übrig ist. Daher würde ich gerne wissen, ob es einen Weg gibt, den gesamten Speicher, der beim Laden eines Objekts verwendet wurde, vollständig zu beseitigen.
Jede Monogame spezifische Art würde auch geschätzt werden. Im Moment entsorge ich zunächst meinen Vertex- und Indexpuffer, dann räume ich meine Vertex- und Indexlisten auf, entsorge dann meinen Basiseffekt und meinen Graphicsdevicemanager, dann rufe ich das "Spiel" selbst auf und schließlich mache ich die Variable das enthält das "Spiel" gleich null.
PS. Wenn Sie das jemals in XNA getan haben, können Sie mir vielleicht auch helfen, weil die Syntax im Grunde die gleiche ist.
EDIT (Might monogame bug):
Ich habe jetzt reinigen alle Puffer etc. bis ordnungsgemäß verwaltet. Auf meinem BasicEffect ist jedoch immer noch ein Speicherleck vorhanden. Ich habe versucht, es zu entsortieren und es null zu machen, aber egal, was es immer mehr und mehr Speicher verwendet, jedes Mal wenn ich meinen Drehpunkt neu lade.
Wenn Sie alle 'IDisposable' Ressourcen entsorgen, dann tut ['GC.Collect'] (http://msdn.microsoft.com/en-us/library/System.GC.Collect.aspx) nicht Arbeit? – Romoku
Ich rufe es, aber es scheint keine Wirkung zu haben – Gerharddc
Sind Sie sicher, dass Sie alle Verbindungen und Gegenstände entsorgen? kannst du deinen Code teilen? –