C# 如何使一个“延迟”的可观察对象只订阅第一个订户?
考虑到这个伪代码,我想做的是确保如果我有多个订阅者,我不会让C# 如何使一个“延迟”的可观察对象只订阅第一个订户?,c#,system.reactive,C#,System.reactive,考虑到这个伪代码,我想做的是确保如果我有多个订阅者,我不会让remote源对每个订阅者进行额外的轮询 IObservable<data> RemoteObservable(Remote remote) { var onceonly = Observable.FromAsyncPattern(remote.Begin, remote.End); return Observable.Defer(() => onceonly())
remote
源对每个订阅者进行额外的轮询
IObservable<data> RemoteObservable(Remote remote)
{
var onceonly = Observable.FromAsyncPattern(remote.Begin, remote.End);
return Observable.Defer(() => onceonly())
.Repeat();
}
IObservable远程可观察(远程)
{
var onceonly=Observable.FromAsyncPattern(remote.Begin,remote.End);
返回可观察的。延迟(()=>onceonly())
.重复();
}
答案是(找到):
return Observable.Defer(() => onceonly())
.Repeat()
.Publish()
.RefCount();