0

我有几个从不同事件创建的 observables,并使用 sample 方法创建相同时间跨度的样本。问题是它们是在不同时间创建和启动的,所以我得到了等距的时间序列,这些时间序列都发生了变化。我不能强制创建时间,因此我想使用参考时间戳来对齐所有这些 observables。

假设采样间隔为 5 秒,参考时间戳为01-Jan-1969 00:00:00

我会得到以下时间序列:

19-Nov-2012 08:00:00
19-Nov-2012 08:00:05
19-Nov-2012 08:00:10
....

问题当然是如何在 RX 中做到这一点。

目标是为情节对齐时间序列形式的事件。

4

1 回答 1

0

这是一个例子:

public class Program
{
    public static void Main()
    {
    IObservable<long> Sequence1 = Observable.Interval(TimeSpan.FromSeconds(1));
    IObservable<long> Sequence2 = Observable.Interval(TimeSpan.FromSeconds(1));
    //1st subscription
    Sequence1.Timestamp().Buffer(TimeSpan.FromSeconds(5.0)).Subscribe(item1 =>
    Console.WriteLine("Buffer 1: {0} Value: {1}", item1[item1.Count[1].
    Timestamp.ToString("HH:mm:ss"), item1[item1.Count - 1].Value));
    //some delay
    Thread.Sleep(2000);
    //2nd subscription
    Sequence2.Timestamp().Buffer(TimeSpan.FromSeconds(5.0)).Subscribe(item2 =>
    Console.WriteLine("Buffer 2: {0} Value: {1}", item2[item2.Count - 1].
    Timestamp.ToString("HH:mm:ss"), item2[item2.Count - 1].Value));
    Console.ReadLine();
}
}

序列 1 和 2 是不同的数据源,我想对齐它们,以便例如缓冲区在同一时间戳关闭。

于 2012-11-26T21:08:36.883 回答