如何释放数据表对象使用的内存

时间:2013-10-01 06:50:27

标签: asp.net datatable garbage-collection 3-tier

我如何释放数据表对象使用的内存说dt;这样我可以将它用于一组不同的值?是否足够dt = null; 这有什么好处吗?

2 个答案:

答案 0 :(得分:0)

您可以使用table.Clear();或更便宜的table = new DataTable();。由于DataTable实现IDisposable,您也可以调用table.Dispose();或将其与using语句一起使用。但是,这并不是必需的,因为DataTable不使用非托管资源。它只是一个内存中的对象。

旁注:你不需要手动将它设置为null,Garbage Collectior负责处理它,所以根本不需要这样做。

Setting Objects to Null/Nothing after use in .NET

答案 1 :(得分:0)

Public Shared Sub CleanupDataTable(ByRef dtToCleanup As DataTable)
  If dtToCleanup IsNot Nothing Then
    dtToCleanup.Rows.Clear()
    dtToCleanup.Constraints.Clear()
    dtToCleanup.ParentRelations.Clear()
    dtToCleanup.ChildRelations.Clear()
    dtToCleanup.PrimaryKey = Nothing
    dtToCleanup.Columns.Clear()

    dtToCleanup = Nothing
  End If
End Sub