我有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);
虽然可行,但感觉并不正确,我在想也许有更好的方法可以实现这一目标。
任何想法该怎么做?还是您认为我上面提供的解决方案很好?