先週、思いっきりハマッた話です。
そもそも、自分が直接かかわっていないプロジェクトでいきなり日曜に呼び出されて、うんぬんかんぬん・・・ま、そいういった愚痴は置いといてw
このプロジェクトではあるWindowsMobile端末を使用しており、その上で動作する.NET(言語はC#)のアプリケーションにてメモリリークが発生しており、運用上使い物にならないレベルということだった。問題はあるフォームを「ShowDialog()」で開いて閉じてを繰り返すだけで、50KBずつリークするということはわかっていた。
何も確認せずにとりあえず、試してみてもらったのは以下の2つ。
- メンバ変数でDataSetを使用しているようであれば、必ずDispos()すること。
- フォームを閉じる際に、フォーム上のコントロールを全て明示的にDispose()すること。
しかし、上記の対応では効果が無かった(結果からすると、いい線をいっていたんだけど足りなかった・・・)。




