【发布时间】:2013-03-12 17:13:02
【问题描述】:
我在 C# 中使用 Reactive Extensions (Rx),并希望通过以下方式过滤事件。想象一下,我有以下发起者序列:
A B C D E F X G H I X J X X K L M N O X P
我想产生以下输出:
E F X H I X J X X N O X
基本上,我会缓冲(节流?)具有最大界限(在示例中此界限为 2)的事件,当我得到某个事件(在本例中为事件 X)时,我想将该缓冲区刷新到输出并再次开始缓冲,直到我再次看到特殊事件。
我正在尝试几种方法,但没有任何运气,我想应该有一种简单的方法来完成它,我错过了。
编辑:一个限制是,我希望获得大量被丢弃的事件,并且只有少数 X 实例,因此在内存中保留一个包含数千个事件的缓冲区以仅读取最后 2 个(或 20 个)是不是一个真正的选择。
【问题讨论】:
标签: c# events system.reactive circular-buffer