Поддерживают ли реактивные расширения скользящие буферы?

Я использую реактивные расширения для сопоставления данных в буферы по 100 мсек. :

this.subscription = this.dataService
    .Where(x => !string.Equals("FOO", x.Key.Source))
    .Buffer(TimeSpan.FromMilliseconds(100))
    .ObserveOn(this.dispatcherService)
    .Where(x => x.Count != 0)
    .Subscribe(this.OnBufferReceived);

Это работает нормально. Однако я хочу, чтобы поведение немного отличалось от того, которое обеспечивается операцией Buffer . По сути, я хочу сбросить таймер, если получен другой элемент данных. Только когда данные не были полученный в течение всех 100 мс, я хочу обработать это. Это открывает возможность никогда не обрабатывать данные, поэтому я также должен иметь возможность указать максимальное количество. Я бы вообразил что-то вроде строк:

.SlidingBuffer(TimeSpan.FromMilliseconds(100), 10000)

Я осмотрелся и не нашел ничего подобного в Rx? Может ли кто-нибудь подтвердить / опровергнуть это?

23
задан Kent Boogaart 29 September 2011 в 13:07
поделиться