|
昨天做了一个自动生成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 内存泄漏问题,转载需保留来源!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。