授業がある
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();
}
}
}