接收-合并2个不同的序列

时间:2018-10-06 19:44:08

标签: c# system.reactive

我有2个序列以不同的速度生成不同的数据。

我们可以说其中之一是Price,它每X毫秒产生一次价格。

第二个序列是weather report,它每Y毫秒生成一次天气报告。

我需要每30毫秒拍摄两个序列的快照并进行处理。以下是我要实现的目标的大理石图:

Price : 1--2--3--4--

Weather: ----S-----C-

Time(ms): ------30--60-

Result: ------R1--R2

R1 -> Price: (1,2,3), Weather: S

       R2 -> Price: 4, Weather: C

要详细说明,请在30毫秒后进行。具有1, 2, 3和天气序列。有S,因此我要获得的结果是价格(1,2,3)和天气(S)。 快进30毫秒,这次是价格序列。有4和天气有C,所以现在我想获取价格(4)和天气(C)。

我尝试分别缓冲每个序列,然后使用Zip

组合它们
priceSequence
    .Buffer(TimeSpan.FromMilliseconds(30))
    .Zip(
        weatherSequence.Buffer(TimeSpan.FromMilliseconds(30)),
        (price, weather) => (price, weather))
    .Subscribe(Process);

虽然可行,但感觉并不正确,我在想也许有更好的方法可以实现这一目标。

任何想法该怎么做?还是您认为我上面提供的解决方案很好?

0 个答案:

没有答案