私は子フォームを持つMDIを持っています。子フォームはDataGridViewです。私は、DataGridビューに膨大な量のデータをロードします。私は子供を閉じると処分方法を形成し、私はメモリが下がらないフォームを閉じると、私はDataGridViewのに.NETメモリリーク?
this.dataGrid.Dispose();
this.dataGrid = null;
を配置すると呼ばれています。私は.NET memory profilerを使用してメモリ使用量を追跡します。私は最初にデータグリッドを読み込んで(予期したとおりに)読み込みが完了したときに一定になると、メモリ使用量が高くなることがわかります。
フォームを閉じると、それでも一定のままです。しかし、私がメモリプロファイラーを使ってメモリのスナップショットを撮ると、ファイルをロードする前の状態になります。メモリスナップショットを取得すると、強制的にガベージコレクタが実行されます。
何が起こっていますか?メモリリークはありますか?またはガベージコレクタを強制的に実行する必要がありますか?
詳しい情報:
私はもはや情報が必要なフォームを閉じるしています。だから私はデータへの参照を保持していない理由です。
更新
それは私が一度にすべてのデータをロードするための必要条件です。私は何かが間違っているとガベージコレクタは実行されていないが、私はプロファイラーを見ているときにそれが表示されますが、それは、スナップショットは、メモリ使用量が減少します。だから私は何が起こっているのか理解できません。
どのような種類のオブジェクトからデータをロードしていますか? – RichardOD
私はそれをDataViewにバインドしています –