VB.Net로 작성된 크고 복잡한 Windows Forms 앱이 있습니다. 사용자들은 메모리 문제를 겪고 있으며 JetBrains dotTrace Profiler를 사용하여 몇 가지 문제를 해결합니다.VB.Net 응용 프로그램에서 메모리 누수, 그리드에 의해 열려있는 객체가 있습니까?
내 물건을 열어 놓은 무언가가 아직 있습니다. 나는 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에서 릴리스되었습니다.
플렉스 그리드는 기본 폼에서 표시된 하위 폼에 있습니다. 하위 양식이 닫히면 메모리 프로파일 러가 양식이 여전히 참조되어 있음을 보여줍니다. dotTrace에서 "최단 경로"를 클릭하면 아래 경로가 표시됩니다.
는이것은 루트 경로와 고객의 유일한 객체가 될 것으로 보인다.
내 개체 또는 컬렉션간에이 양식에서 진행되는 사용자 지정 이벤트 처리가 없으며 아무 것도 처리되지 않습니다.
추가로 문제를 해결하려면 어떻게해야합니까?