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();