强制刷新到Observable.Buffer C# [英] Force flush to Observable.Buffer c#

查看:99
本文介绍了强制刷新到Observable.Buffer C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

在这个例子:

mSubscription = mFluxObservable.Buffer(新的TimeSpan(0,0,1,30))订阅。(O =>金丹(邻,iSessionId));

我想一时半期完成之前刷新数据!

I want to flush the data before the 1:30 period has finished!

推荐答案

这为我工作:

var subject = new Subject<Unit>();
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)来强制缓存刷新。一个新的缓冲区冲洗后立即开始。

Now I only need to call subject.OnNext(Unit.Default) to force the buffer to flush. A new buffer is started immediately after the flush.

这篇关于强制刷新到Observable.Buffer C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆