主题与发布

时间:2012-02-14 15:55:08

标签: linq c#-4.0 system.reactive

我在最后一天左右一直在和Rx一起玩,而且对我来说仍然没有意义的一件事就是主题。

我什么时候可以直接使用这个课程?

在我看来,我更有可能公开IObservable并使用Publish方法创建IConnectableObservable。然后,我可以选择使用RefCount转换回监视其订户的IObservable。

我确定我在这里遗漏了一些东西。如果您有任何见解我会很感激。

由于

3 个答案:

答案 0 :(得分:1)

你是正确的,直接暴露主题不太可能是你想要的。通常,您将在内部使用Subject并将其公开为IObservable。您可以执行此操作的一个示例是this question

答案 1 :(得分:1)

我也是Rx的新手,但我已经将它们用于具有热观察能力的类。即

class NumberMonitor
{
  Subject<double> _source = new Subject<double>();
  public IObservable<double> NumberStream {get {return _source.AsObservable; } }

  void OnSomeEvent(object sender, EventArgs e)
  {
    _source.OnNext(1);
  }
}

答案 2 :(得分:0)

我在ViewModel类中内部使用AsyncSubject作为某种完成标志作为快速修复,我会说它们看起来比做Observable.Create更清晰。