0

我有一个完整的观察者列表

//create the list
Class ObersverList : IList<Observer>

Observer 类有一个显示一些信息的动态表单。我想要一种干净的方式来杀死表单。

在列表中,我实现了类似

// preiodically call from programm to have always a nice updated list
observerlist.RemoveClosedHandles();

//observerlist.cs
public void RemoveClosedHandles() {
    _list.RemoveAll(ObserverActivePredicate);
}

private static bool ObserverActivePredicate(Oberver o) {
    return !o.HasHandle;
}

这导致 ObserverList 非常好,而且它工作得很好,但我有问题。a)观察者没有被杀死,它刚刚从列表中消失(对我来说没问题)b)表格保持打开状态。(这是一个大问题)

我想要使​​用构造函数之类的东西

//observer.cs
   activate() {
      HUD = new ObserverHud();
    }
    ~Observer(){
        HUD.Close();
        HUD.Dispose(); 
    }

但我不知道如何调用观察者析构函数并杀死元素,同时删除。有没有优雅的 c# 方式,还是我需要跳过列表,找到要删除的元素并处理它?

干杯

4

1 回答 1

1

好的,我现在用 IDisposable 做到了。解决了

于 2012-08-02T02:24:53.227 回答