Csharp/C#教程:强制刷新到Observable.Buffer c#分享


强制刷新到Observable.Buffer c#

有没有办法强制Observable.Buffer在缓冲时间结束前刷新?

在示例中:

mSubscription = mFluxObservable.Buffer(new TimeSpan(0, 0, 1, 30)).Subscribe(o => saver(o, iSessionId));

我希望在1:30时段结束前刷新数据!

这对我有用:

 var subject = new Subject(); var closing = Observable .Timer(new TimeSpan(0, 0, 1, 30)) .Select(x => Unit.Default); var query = mFluxObservable .Buffer(() => Observable .Amb(subject, closing) .Take(1)); 

现在我只需要调用subject.OnNext(Unit.Default)来强制缓冲区刷新。 冲洗后立即启动新缓冲区。

…和基本相同的主要使用窗口:

上述就是C#学习教程:强制刷新到Observable.Buffer c#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 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); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1018070.html

(0)
上一篇 2022年1月3日
下一篇 2022年1月3日

精彩推荐