2010-07-18 4 views
2

이 클래스 고려 :각 인스턴스의 모든 이벤트 처리기를 수동으로 제거해야합니까?

Class Item : Inherits ItemBase 

    Public Sub New 
     AddHandler MyEvent, AddressOf MyEventHandler 
    End Sub 

    Private Sub MyEventHandler()  
    End Sub 

    Private Sub MySecondEventHandler() Handles MyBase.MyEvent 
    End Sub 

End Class 

내가 수동으로이 항목의 파괴에 핸들러를 제거해야합니까를? 이것은 GC 나 관리 코드 컴파일러의 다른 도구에 의해 수행되지 않습니까?

답변

0

개체가 죽은 것으로 표시되면 해당 개체에 대한 참조가없고 내부 참조가 이제 죽은 개체에서 왔으며이 시점부터는 중요하지 않음을 의미합니다. 따라서 수동으로 핸들러를 제거 할 필요가 없습니다.

0

개체는 모든 참조가 제거 될 때까지 (모든 이벤트 처리기 포함) 가비지 수집되지 않으며 가비지 수집 될 때까지 파괴되지 않습니다. 당신이 정말로해야 할 일은 같은 클래스에서 핸들러를 제거하는 것입니다. 핸들러를 끝내 자마자 핸들러를 추가합니다.

관련 문제