estoy usando extensiones de reactivos para cotejar los datos en memorias intermedias de 100 ms:¿Las extensiones reactivas son compatibles con los búfers de laminación?
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);
Esto funciona bien. Sin embargo, quiero un comportamiento ligeramente diferente al proporcionado por la operación Buffer
. Esencialmente, quiero restablecer el temporizador si se recibe otro elemento de datos. Solo cuando no se hayan recibido datos para los 100 ms completos, quiero manejarlos. Esto abre la posibilidad de nunca manejar los datos, por lo que también debería poder especificar un recuento máximo. Me imagino algo en la línea de:
.SlidingBuffer(TimeSpan.FromMilliseconds(100), 10000)
que he tenido una mirada alrededor y no he podido encontrar nada parecido en Rx? ¿Alguien puede confirmar/negar esto?
Estoy seguro de que vi este comportamiento en uno de los videos del tutorial en Rx, pero me temo que no puedo recordar qué o dónde exactamente. :( – Chris
Ah, acelerador (http://msdn.microsoft.com/en-us/library/hh229298%28v=vs.103%29.aspx) es en lo que estaba pensando pero no creo que haga qué lo que quiere por sí solo. No estoy seguro de si podría haber alguna forma de combinarlo para hacer lo que se quiere ... – Chris