Rx动态尺寸滑动缓冲器

时间:2016-06-24 04:28:13

标签: c# .net system.reactive

我不完全确定怎么说这个,所以如果我弄错了,我很抱歉。 我有一系列事件,我们会说这样:

0,1,2,3,4,5,6,7,8,9,...

我想为我的程序提供一个IObservable,它返回如下所示的缓冲区:

[0],[0,1],[0,1,2],[0,1,2,3],[1,2,3,4],[2,3,4,5] ,[3,4,5,6],...

或者其他一些不是4的最大缓冲区大小。如果我可以像使用定时缓冲区调用一样输入缓冲区参数,那么它很容易,但是没有重载,所以我尝试构造序列手动:

target.LogEvents.Buffer(1,1).Take(1).Concat(target.LogEvents.Buffer(2,1).Take(1)).Concat(target.LogEvents.Buffer(3,1).Take(1)).Concat(target.LogEvents.Buffer(4, 1)).Subscribe(...);

但那没用。它给了我

[0],[1,2],[3,4,5],[6,7,8,9],[7,8,9,10],...

如何生成序列?

1 个答案:

答案 0 :(得分:2)

这对你有用吗?

sub

你需要NuGet“Rx-Main”和“Ix-Main”才能使用它。