Force flush to Observable.Buffer c#

后端 未结 2 1246
鱼传尺愫
鱼传尺愫 2021-01-06 03:11

Is there any way to force a Observable.Buffer to flush before the end of buffered time?

In the example:

mSubscription = mFluxObservable.Buffer(new Time

2条回答
  •  独厮守ぢ
    2021-01-06 03:51

    ...and basically the same principal using window:

    var bufferPeriod = TimeSpan.FromSeconds(1.5);
    var source = Observable.Interval(TimeSpan.FromMilliseconds(100)).Take(50);
    
    //source.Buffer(bufferPeriod).Dump();
    
    var bufferFlush = new Subject();//Or Subject
    source.Window(
            ()=>Observable.Merge(Observable.Timer(bufferPeriod), bufferFlush))
        .Select(window=>window.ToList())
        .Dump();
    
    //Simulate calling flush.
    Observable.Interval(TimeSpan.FromMilliseconds(1350)).Take(2).Subscribe(bufferFlush);
    

提交回复
热议问题