我是 GC 新手, 如果我想释放一个数据表数组,在其所有数据表上调用 dispose() 就足够了吗?我是否也需要将 databale 数组设置为 null ?或每个数据表?
这够了吗?:
DataTable[] myTables = null;
try
{
myTables = DB.GetTables();
// use myTables....
}
finally
{
// Dispose Data Tables
if (myTables != null)
{
foreach (DataTable dt in myTables)
{
if (dt != null)
dt.Dispose();
}
}
}
最佳答案
对于垃圾收集,您无需执行任何操作。
由于 DataTable 实现了 IDisposable,因此最好对所有这些调用 Dispose()
(就像您正在做的那样)。仅在极少数情况下才需要设置对 null
的引用。不在这里。
但是 Dispose()
是关于释放托管和非托管资源,而不是关于垃圾回收。
对于 DataTbales,Dispose() 实际上并不是必需的,但您不想费心去了解这一点。如果类有 Dispose() 成员,请调用它。
关于.net - C# 中数据表数组的垃圾收集处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117589/