Cle*_*ent 6 .net system.reactive
我想跟踪我的IObservable的有效订阅数量?我想我可以通过在"某人"调用Subscribe/Dispose时递增/递减计数器来实现这一点.
我怎样才能做到这一点 ?或者有更好的方法吗?
它似乎是由内部的RefCount完成的,但订阅计数器没有公开.
谢谢
最简单的方法是将Observable包装在Observable.Create中:
IObservable<string> myObs;
var returnObservable = Observable.Create<string>(subj => {
// TODO: Write code to do stuff on Sub
var disp = myObs.Subscribe(subj);
return Disposable.Create(() => {
disp.Dispose();
// TODO: Write code to do stuff in unsub.
});
});
Run Code Online (Sandbox Code Playgroud)
谢谢,这就是我所需要的。这可以变成一个运算符,如下所示:
public static IObservable<TSource> OnSubscribe<TSource>(this IObservable<TSource> source, Action onSubscribe, Action onDispose)
{
return
Observable
.Create<TSource>(observer =>
{
onSubscribe?.Invoke();
var subscription = source.Subscribe(observer);
return () =>
{
subscription.Dispose();
onDispose?.Invoke();
};
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1322 次 |
| 最近记录: |