Reset рассчитывается выше максимального временного интервала, в агрегировании на основе количества Rx
Фильтрация с подсчетом без ограничения времени
IObservable filteredStream = changes.Buffer(3);
Как ввести бездействие reset?
![enter image description here]()
Но как ввести тайм-аут TimeSpan tooLong
, чтобы подсчет возобновлялся с нуля всякий раз, когда интервал между двумя значениями превышает этот максимум?
Ответы
Ответ 1
Я думаю, что это то, что вам нужно.
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>