基于计数的过滤,没有时间限制
IObservable filteredStream = changes.Buffer(3);
如何引入不活动重置?
但是如何引入超时TimeSpan太长,以便每当两个值之间的间隔超过此最大值时,计数将从零开始重新启动?
解决方法
我认为这是你以后.
var longGap = source.Throttle(tooLong); var filtered = source .Window(() => { return longGap; }) // Gives a window between every longGap .Select(io => io.Buffer(maxItems).Where(l => l.Count == maxItems)) .Switch(); // Flattens the IObservable<IObservable<IList>> to IObservable<IList>