从Replay Observable中删除项目

时间:2013-08-15 08:30:09

标签: buffer system.reactive replay

想象一下,您有一个可通过其中一个Replay overloads创建的重播可观察对象。 是否有Replay的变体使用允许我从重放缓冲区中删除项/消息/元素的方法生成重播observable?

我需要重播observable以避免竞争条件:两个可观察的AB产生相关的消息。如果A生成了m消息,那么B可能会跟随相应的消息m'(但这是可选的)。
为了从m'的所有消息中过滤掉BA的订阅者向B注册订阅者(已过滤精确m'消息),因为只有在收到m时,程序才能预测可能传入的m'的内容。

但是,即使在m'的订阅者计划运行之前,有时A也会到达,这意味着尚未注册m'的订阅者。我可以通过将B包装为重播可观察对象来解决这个问题,但我希望能够从重放缓冲区中清除已处理的消息,因为我知道每个B的消息都是只由一个订户处理。

1 个答案:

答案 0 :(得分:0)

var result = foo.Replay().Where(x => x != skip);