应该取消订阅,可以在Dispose()方法中处理该事件。以下是代码示例:
public class MyComponent : IDisposable
{
private AnotherComponent _anotherComponent;
public MyComponent()
{
_anotherComponent = new AnotherComponent();
_anotherComponent.SomeEvent += HandleSomeEvent;
}
public void Dispose()
{
_anotherComponent.SomeEvent -= HandleSomeEvent;
}
private void HandleSomeEvent(object sender, EventArgs e)
{
// handle the event
}
}
internal class AnotherComponent
{
public event EventHandler SomeEvent;
}