■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
その為、連続使用するとメモリ使用量が膨れ上がってしまう現象があります。 どのように対策を講じれば良いか、教えて頂けますでしょうか。
|
|