Mam aplikacji C# składają się z wielu Pivotitems Pivot. Normalne Pivotitemy rozładowują się prawidłowo i nie przeciekają pamięci. Na dwóch przedmiotach mam jednak rysunki, na których używam Monogame do renderowania modeli 3D. Po rozładowaniu i załadowaniu ich czopów próbuję całkowicie zniszczyć, a następnie całkowicie odtworzyć instancje "Gry" (głównie dlatego, że Monogame nie pozwala na narysowanie w tym momencie na dwóch powierzchniach i ponieważ używają dużo pamięci i istnieje za mało dla nich obu).C# Jak całkowicie usunąć obiekt z pamięci
Mój problem jest, że kiedy wyrzucać Xamlgame który jest tworzony po załadowaniu go nie zwalnia całą pamięć jest używana. Oznacza to, że za każdym razem, gdy odtwarzam Xamlgame, po prostu zaczyna korzystać z coraz większej ilości pamięci, dopóki nie pozostanie więcej. Dlatego chciałbym wiedzieć, czy istnieje jakikolwiek sposób C#, aby całkowicie pozbyć się całej pamięci, która została użyta przy ładowaniu obiektu.
Wszelkie Monogame specyficzny sposób będzie również mile widziane. W tej chwili najpierw pozbywam się bufora wierzchołków i indeksu, potem wyczyściam swoje listy wierzchołków i indeksów, potem pozbywam się mojego Basiceffect i mojego urządzenia do generowania grafiki, potem nazywam dispose samą "grą" i na koniec robię zmienną, która zawiera "grę" równą zeru.
PS. Jeśli kiedykolwiek robiłeś to w XNA, możesz również być w stanie mi pomóc, ponieważ składnia jest w zasadzie taka sama.
EDIT (może być MonoGame bug):
Mam teraz udało się wyczyścić wszystkie bufory itp poprawnie. Na moim BasicEffect nadal występuje przeciek pamięci. Próbowałem go unieszkodliwić i unieważnić, ale bez względu na to, po co ciągle zużywa coraz więcej pamięci za każdym razem, gdy ponownie ładuję swój pivot.
Jeśli utylizacji wszystkich 'IDisposable' zasobów następnie robi [' GC.Collect'] (http://msdn.microsoft.com/en-us/library/System.GC.Collect.aspx) nie praca? – Romoku
Dzwonię, ale wydaje się, że nie ma to żadnego skutku. – Gerharddc
czy jesteś pewien, że pozbywasz się wszystkich połączeń i przedmiotów? czy możesz udostępnić swój kod? –