0

我有以下产生 IObservable 问题的 Rx 查询,它不能与 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?

4

1 回答 1

2

在您调用 Connect() 之前,IConnectableObservable 与其源断开连接,因此在有人订阅它之前不会发生任何事情(Interval 不会启动它的计时器)。Connect() 将使 Publish 订阅其源。

于 2012-02-23T20:50:14.007 回答