Пожалуйста, обратите внимание на приведенный ниже код, который я взял из MSDN website:TableCell - утечка памяти?
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 создается для каждой ячейки таблицы. У меня есть два вопроса:
- Как уничтожаются эти экземпляры? т.е.
c = Nothing
. Неужели есть утечка памяти? Как класс таблицы знает, где экземпляр
TableRow
иTableCell
есть? Причина, почему я спрашиваю, потому что кажется, что вы не можете повторно использовать экземплярTableCell
для нескольких ячеек таблицы иTableRow
для нескольких строк таблицы, то есть вы не можете сделать что-то вроде этого:Dim objTable As New Table 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 Cell 2" objTableRow.Cells.Add(objTableCell) objTable.Rows.Add(objTableRow) objTableCell.Text = "Test Row 3 Cell 1" objTableRow.Cells.Add(objTableCell) objTableCell.Text = "Test Row 3 Cell 2" objTableRow.Cells.Add(objTableCell) objTable.Rows.Add(objTableRow)
Я понимаю это, но по моему опыту всегда стоит как можно больше управлять памятью. У меня проблемы с утечками памяти в приложении .NET. – w0051977
.NET не позволяет вам легко управлять памятью, как на C++/COM. По моему опыту, утечки памяти .NET напрямую связаны с не удалением одноразовых объектов. – jrummell
Вы говорите, что это бессмысленно делать это? tc = Nothing – w0051977