У меня есть большое сложное приложение Windows Forms, написанное на VB.Net. Пользователи испытывают некоторые проблемы с памятью и используют JetTrackTracker Profiler, чтобы попытаться устранить некоторые из них.Утечка памяти в приложении VB.Net, объект, открытый Grid?
Есть еще что-то, что открыло некоторые из моих объектов. У меня есть объект «Клиент», который имеет Generic.List
InvoiceLineItem
. Этот пункт в основном объект привязан к элементу управления сетки (ConponentOne FlexGrid), который имеет нагрузку только для чтения свойств для отображения данных, например:
Public Class InvoiceLineItem
Private _customer as Customer
Private _charge as Charge
Sub New(Customer as Customer, Charge as Charge)
_customer = Customer
_charge = Charge
End Sub
Public ReadOnly Property Name as String
Return _customer.Name
End Property
Public ReadOnly Property ItemName as String
Return _charge.Name
End Property
Public ReadOnly Property Amount as Decimal
Return _charge.Amount
End Property
End Class
и т.д.
Этот объект выглядит, как он не получает выпущенный из FlexGrid.
Flexgrid имеет дочернюю форму, показанную на основной форме. Когда дочерняя форма закрыта, Профайлер памяти показывает, что форма все еще ссылается. Когда я нажимаю «Самый короткий путь» в dotTrace, отображается путь ниже.
Это, кажется, единственный объект Заказчика с корневым путем.
В этой форме между моим объектом или коллекцией нет настраиваемой обработки событий, и ничего не выбрано.
Что делать, чтобы устранить эту проблему дальше?