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または他のツールによって行われていませんか?

4

2 に答える 2

0

オブジェクトへのすべての参照(すべてのイベントハンドラーを含む)がなくなるまでオブジェクトはガベージコレクションされません。また、ガベージコレクションされるまでオブジェクトは破棄されません。本当に必要なのは、同じクラスのハンドラーを削除して、ハンドラーを使い終わったらすぐに追加することです。

于 2010-07-18T10:00:10.063 に答える
0

オブジェクトが死んでいるとマークされている場合、それはそれへの参照がなく、その内部参照が死んだオブジェクトからのものであり、この時点から問題にならないことを意味します。そのため、ハンドラーを手動で削除する必要はありません。

于 2010-07-18T12:54:55.080 に答える