|
昨天做了一個自動生成Insert 語句的小工具,今天測試發現存在嚴重的內存泄漏問題,代碼看了好幾遍,沒發現問題。后來用 .NET Memory Profiler 跟蹤(跟蹤方法見 用 .NET Memory Profiler 跟蹤.NET 應用內存使用情況--基本應用篇) 發現有數千個DataRow 沒有釋放,最后定位是DataTable.NewRow 的問題。
先看一下有問題的代碼
public DataRow GetNextRow()
{
if (_DataReader.Read())
{
DataRow row = _SchemaTable.NewRow();
foreach (DataColumn col in _SchemaTable.Columns)
{
row[col.ColumnName] = _DataReader[col.ColumnName];
}
return row;
}
else
{
return null;
}
}
NET技術:DataTable.NewRow 內存泄漏問題,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。