Tag: buffering

Rx IObservable缓冲以平滑突发事件

我有一个Observable序列,可以快速突发产生事件(即:一个接一个地发生五个事件,然后是长时间延迟,然后是另一个快速突发事件等)。 我希望通过在事件之间插入一个短暂的延迟来平滑这些突发。 想象一下以下图表作为示例: Raw:–oooo ————– ooooo —– oo —————- ooo | 缓冲: – o – o – o – o ——– o – o – o – o – o – o – o ——— Ø – ○ – ○| 我目前的方法是通过Observable.Interval()生成类似节拍器的计时器,该计时器表示何时可以从原始流中拉出另一个事件。 问题是我无法弄清楚如何将该计时器与我的原始无缓冲可观察序列相结合。 IObservable.Zip()接近于我想做的事情,但它只有在原始流比定时器生成事件更快的情况下才有效。 一旦原始流中存在显着的间歇,计时器就会建立一系列不需要的事件,然后立即与原始流中的下一个事件突发事件配对。 理想情况下,我想要一个具有以下函数签名的IObservable扩展方法,该方法生成我上面概述的bevaior。 现在,来救我的StackOverflow 🙂 public static IObservable Buffered(this IObservable src, TimeSpan minDelay) […]