我有以下Rx查询产生IObservable问题,因为它不能与Publish()一起使用,因此订阅者数量增加,内存负载也增加
// Works
Observable
.Interval(TimeSpan.FromSeconds(1.0))
.Select(_ => XDocument.Load("http://test.com/data.xml"));
// Broken
Observable
.Interval(TimeSpan.FromSeconds(1.0))
.Select(_ => XDocument.Load("http://test.com/data.xml")).Publish();
有没有更好的方法来创建这样的Observable?
答案 0 :(得分:2)
在你调用Connect()之前,IConnectableObservable与它的源断开连接,因此在有人订阅它之前不会发生任何事情(Interval不会启动它的计时器)。 Connect()将使Publish订阅其源。