小编Coo*_*rce的帖子

为什么Subject <T> .Dispose不会处理当前订阅?

Subject<T>,如果您手动调用其Dispose方法,我一直在考虑基于它处理所有订阅.但是我最近发现它不起作用,只是清除它的内部观察者集合并用DisposedObserver帮助器类实例替换它.

我发现自己对行为有点困惑,只是假设"正常"只会传播并处置所有的嫌疑人.后来,试图找出为什么这样设计,我猜想他们设计这种方式的原因有两个.

  • 怀疑者可能是部分依赖于主题的组合物,因此处置的完全传播没有意义.即.合并并不是因为其中一个消息来源被处理掉,正如大家所期望的那样.
  • Subject.Dispose它在语义上等同于Observable.Never观察者一侧的延续.如果想要在处理之前发出错误或完成信号,则Subject.Dispose调用者也可以调用OnComplete或OnError(因为它们在同一范围内).

编辑注意:对不明问题抱歉.我已经明白了如何使用它,这更像是一个设计问题.让我更清楚地说明一下.

为什么你认为Rx的设计者以这种方式制作Dispose行为?

(以上两点是我的回答试验)

c# reactive-programming system.reactive

3
推荐指数
1
解决办法
1031
查看次数

标签 统计

c# ×1

reactive-programming ×1

system.reactive ×1