首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TableCell -内存泄漏?

TableCell -内存泄漏?
EN

Stack Overflow用户
提问于 2012-06-13 13:18:08
回答 1查看 230关注 0票数 0

请看下面的代码,这是我从MSDN网站中获取的。

代码语言:javascript
复制
Sub Page_Load(sender As Object, e As EventArgs)
    ' Generate rows and cells.           
    Dim numrows As Integer = 3
    Dim numcells As Integer = 2
    Dim j As Integer
    For j = 0 To numrows - 1
        Dim r As New TableRow()
        Dim i As Integer
        For i = 0 To numcells - 1
            Dim c As New TableCell()
            c.Controls.Add(New LiteralControl("row " & j.ToString() & ", cell " & i.ToString()))
            r.Cells.Add(c)
        Next i
        Table1.Rows.Add(r)
    Next j
End Sub 'Page_Load

每个行都有一个新的TableRow实例,为每个表单元格创建了一个新的TableCell实例。我对此有两个问题:

  1. 这些例子是如何被摧毁的?即c = Nothing.肯定有记忆泄露?
  2. 表类如何知道TableRowTableCell的实例在哪里?我问您的原因是,您似乎不能对多个表单元格重用TableCell实例,对于多个表行重用TableRow实例,即不能这样做: Dim objTable As New TableRow Dim objTableRow As New TableRow Dim objTableCell As New TableCell objTableCell.Text = "Test Row 1 Cell 1“objTableRow.Cells.Add(objTableCell) objTableCell.Text = "Test Row 1 Cell 2”objTableRow.Cells.Add(objTableCell) objTable.Rows.Add(objTableRow) objTableCell.Text = "Test Row 2 Cell 1“objTableRow.Cells.Add(objTableCell) objTableCell.Text = "Test Row 2 Cell2 Cell2”objTableRow.Cells.Add(objTableCell) (#en20 20= "Test Row 3 Cell 1“)objTableRow.Cells.Add(objTableCell) objTableCell.Text =“测试行3单元2”objTableRow.Cells.Add(objTableCell) objTable.Rows.Add(objTableRow)
EN

回答 1

Stack Overflow用户

发布于 2012-06-13 13:19:57

.NET有一个为您释放内存的垃圾收集器

.NET框架的垃圾收集器管理应用程序的内存分配和释放。每次创建新对象时,公共语言运行库都会从托管堆中为对象分配内存。只要托管堆中有可用的地址空间,运行库就会继续为新对象分配空间。然而,记忆不是无限的。最后,垃圾收集器必须执行一个回收,以便释放一些内存。垃圾收集器的优化引擎根据正在进行的分配确定执行回收的最佳时间。当垃圾收集器执行回收时,它会检查托管堆中不再被应用程序使用的对象,并执行必要的操作来回收它们的内存。

如果您需要立即释放内存(例如使用数据库连接),那么只要它们实现IDisposable,就可以释放它们。

这个接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾收集器会自动释放分配给托管对象的内存。但是,无法预测垃圾回收何时会发生。此外,垃圾收集器不知道诸如窗口句柄或打开的文件和流等非托管资源。 使用此接口的Dispose方法可以显式地与垃圾收集器一起释放非托管资源。当对象不再需要时,对象的使用者可以调用此方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11015704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档