Chr*_*ebb 2 c# system.reactive
我想知道是否有办法弄清楚有多少观察者订阅了IObservable对象.
我有一个管理HashTable的过滤IObservable实例的类,我想实现一个"健康检查"例程,可以确定订阅者是否已被删除/处置,而每个订阅者都不必明确通知此类他们'完成(即应通过Dispose()或Unsubscribe()隐式).
这并没有真正回答这个问题 -
应该-I-使用-listiobserver或 - 简Actiont就是对保跟踪的-AN-的IObservable
任何想法Rx专家?
There's nothing built in, but you could implement a CountingSubject<T>:
public class CountingSubject<T>
{
private ISubject<T> internalSubject;
private int subscriberCount;
public CountingSubject()
: this(new Subject<T>())
{
}
public CountingSubject(ISubject<T> internalSubject)
{
this.internalSubject = internalSubject;
}
public IDisposable Subscribe(IObserver<T> observer)
{
Interlocked.Increment(ref subscriberCount);
return new CompositeDisposable(
this.internalSubject.Subscribe(observer),
Disposable.Create(() => Interlocked.Decrement(ref subscriberCount))
});
}
public int SubscriberCount
{
get { return subscriberCount; }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |