Answered by:
Using buffer with a bufferSelector - an example please?

Question
-
Hi,
Please could someone give a simple example of using the buffer extension using the overload where you pass a bufferSelector (Func<IObservable<TBufferClosing>>) ?
As far as I understand, each buffer of the source will be closed and a new one started whenever the selector emits an element? However I am very new to Rx & C# so I can not seem to get it to work. Bound to be something silly.
thanks in advance,
Paul
Answers
-
Hi Paul. Here are some examples;
var source = Observable.Interval(TimeSpan.FromSeconds(0.1)); var query = from buffer in source.Buffer(() => Observable.Interval(TimeSpan.FromSeconds(1))) from result in buffer.ToArray() /* buffer selector .ToArray() */ select result;
var source = Observable.Interval(TimeSpan.FromSeconds(0.1)); var query = from buffer in source.Buffer(() => Observable.Interval(TimeSpan.FromSeconds(1))) from result in buffer.Sum() /* buffer selector .Sum() */ select result;
This blog post goes into Buffer / Window in some detail (has diagrams etc)http://enumeratethis.com/2011/07/26/financial-charts-reactive-extensions/
James Miles http://enumeratethis.com- Marked as answer by PaulVYoung Thursday, December 1, 2011 10:30 PM
All replies
-
Hi Paul. Here are some examples;
var source = Observable.Interval(TimeSpan.FromSeconds(0.1)); var query = from buffer in source.Buffer(() => Observable.Interval(TimeSpan.FromSeconds(1))) from result in buffer.ToArray() /* buffer selector .ToArray() */ select result;
var source = Observable.Interval(TimeSpan.FromSeconds(0.1)); var query = from buffer in source.Buffer(() => Observable.Interval(TimeSpan.FromSeconds(1))) from result in buffer.Sum() /* buffer selector .Sum() */ select result;
This blog post goes into Buffer / Window in some detail (has diagrams etc)http://enumeratethis.com/2011/07/26/financial-charts-reactive-extensions/
James Miles http://enumeratethis.com- Marked as answer by PaulVYoung Thursday, December 1, 2011 10:30 PM
-
-