我有课
class A {
IObservable<long> poll = new Observable.Interval(100 ms).Do((ms) => LoadData());
void Subscribe() {
poll.Subscribe();
}
}
我有课
class B {
IEnumerable<A> Items { get; }
void Refresh() {
Items = GetNewListWithNewJustCreatedInstances();
}
}
用户多次订阅许多项目,然后他调用 Refresh() 从某个服务器重新加载项目(显然,他再次订阅了新项目)。所有旧订阅都会自动处理还是我应该实现这样的东西?
class A : IDisposable {
void Dispose() {
poll.Dispose();
}
}
class B {
void Refresh() {
foreach (var item in Items) {
item.Dispose();
}
}
}