我有一个正在监听事件的用户控件。
public partial class ObserverControl : UserControl
{
public ObserverControl()
{
InitializeComponents();
Observatory.DataUpdated += OnDataUpdate;
}
private void OnDataUpdated(object sender, EventArgs e)
{
// Process new data
}
}
确保关闭此 UserControl 时取消订阅事件的最佳方法是什么?目前,它关闭了 Observatory 类,但仍在尝试向 ObserverControl 发送更新。
我考虑过使用 IDisposable,但我不太确定它是如何工作的(特别是因为 Dispose(bool dispose)
方法已在设计器代码中被重写)。
最佳答案
将 dispose 方法移出生成的文件并添加
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
Observatory.DataUpdated -= OnDataUpdate;
}
关于c#-4.0 - 取消订阅用户控件中的事件的标准方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10554900/