【问题标题】:How can i release the memory used by a datatable object如何释放数据表对象使用的内存
【发布时间】:2013-10-01 06:50:27
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    旁注:您不需要手动将其设置为null,垃圾收集器会处理它,所以真的没有必要这样做。

    Setting Objects to Null/Nothing after use in .NET

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-30
        • 2010-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-27
        • 1970-01-01
        相关资源
        最近更新 更多