C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 39 を表示中)
■20093 / )  DataGirdViewでメモリが解放されない
□投稿者/ ぐっちょん (8回)-(2008/06/05(Thu) 16:00:46)

分類:[.NET 全般] 

OS:WINDOWSXP SP2
使用言語:VB.NET2005

度々お世話になります。

データベースからDataReaderで取得したデータをDataGridViewに格納しています。

※コードで表すと以下のような形です。(rowは行変数)
Dim dr As DbDataReader
For i As Integer = 0 To dr.FieldCount - 1
dgv.Rows(row).Cells(i).Value = dr.Item(i)
Next

格納するデータによりますが、
1カラム当たり10バイトのテーブル(合計45カラム)を2000行格納した場合、15M程のメモリを使用します。

新たなデータを表示させる為に、一度DataGridViewのデータを削除して他のデータを表示させると、
元々使用していた15Mのメモリが解放されずに、積み重なるようにメモリが増えてしまいます。(メモリリークが起こっています)

※コードで表すと以下のような形です。
dgv.rows.clear()
dgv.Columns.Clear()

For i As Integer = 0 To dr.FieldCount - 1
dgv.Rows(row).Cells(i).Value = dr.Item(i)
Next

その為、連続使用するとメモリ使用量が膨れ上がってしまう現象があります。
どのように対策を講じれば良いか、教えて頂けますでしょうか。
返信 編集キー/


管理者用

- Child Tree -