複数の Pivotitem を持つ Pivot で構成される C# アプリケーションがあります。通常の Pivotitem は適切にアンロードされ、メモリ リークは発生しません。ただし、そのうちの 2 点については、Monogame を使用して 3D モデルをレンダリングする Drawingsurfaces があります。ピボットのアンロードとロード時に、「ゲーム」インスタンスを完全に破棄してから完全に再作成しようとしています (主に、Monogame では現時点で 2 つのサーフェスへの描画が許可されておらず、それらが多くのメモリを使用し、どちらも足りない)。
私の問題は、ロード時に作成された Xamlgame を破棄しても、使用したすべてのメモリが解放されないということです。これは、Xamlgame を再作成するたびに、残りがなくなるまで、ますます多くのメモリを使用し始めることを意味します。したがって、オブジェクトのロード時に使用されたすべてのメモリを完全に破棄する C# の方法があるかどうかを知りたいです。
モノゲーム固有の方法も評価されます。現時点では、最初に頂点とインデックス バッファーを破棄し、次に頂点とインデックス リストをクリアします。次に、Basiceffect と Graphicsdevicemanager を破棄します。次に、「ゲーム」自体で dispose を呼び出し、最後に変数を作成します。 null に等しい「ゲーム」が含まれます。
PS。XNA でこれを行ったことがある場合は、構文が基本的に同じであるため、私を助けることができるかもしれません。
編集(モノゲームのバグかもしれません):
すべてのバッファなどを適切にクリーンアップすることができました。ただし、私の BasicEffect にはまだメモリ リークがあります。私はそれを破棄してnullにしようとしましたが、ピボットをリロードするたびにメモリをどんどん使い続けています。