Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 主题与出版_Linq_C# 4.0_System.reactive - Fatal编程技术网

Linq 主题与出版

Linq 主题与出版,linq,c#-4.0,system.reactive,Linq,C# 4.0,System.reactive,我一直在玩Rx的最后一天左右,有一件事,仍然不是很有意义,对我来说是主题 我什么时候可以直接使用这个类 在我看来,我更可能公开一个IObservable,并使用Publish方法创建一个IConnectableObservable。然后,我可以选择使用RefCount将其转换回监视其订户的IObservable 我肯定我错过了什么。如果你有任何见解,我将不胜感激 谢谢你是对的,直接暴露对象不太可能是你想要的。通常,您会在内部使用主题,并将其作为IObservable公开。您可能会这样做的一个例子

我一直在玩Rx的最后一天左右,有一件事,仍然不是很有意义,对我来说是主题

我什么时候可以直接使用这个类

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

我肯定我错过了什么。如果你有任何见解,我将不胜感激


谢谢

你是对的,直接暴露对象不太可能是你想要的。通常,您会在内部使用主题,并将其作为IObservable公开。您可能会这样做的一个例子是。

我在ViewModel类内部使用AsyncSubject作为某种完成标志作为快速修复,我想说它们看起来比使用Observable干净得多。相反,创建。

我也是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);
  }
}
类编号监视器
{
主题_source=新主题();
public IObservable NumberStream{get{return\u source.asobbservable;}}
void OnSomeEvent(对象发送方,事件参数e)
{
_资料来源.OnNext(1);
}
}

是的-主题是最直观的观察对象,它只是一个你像上面那样手动发出信号的对象