我有几个可以从不同事件创建的observable,并使用sample方法创建相等时间跨度的样本。问题是它们是在不同的时间创建和启动的,因此我获得了相同间隔的时间序列,这些时间序列都被移位了。我不能强制创建时间,因此我想使用参考时间戳来对齐所有这些可观察量。
因此,假设采样间隔为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中做到这一点。
目标是为情节设定对齐的时间序列形式事件。
答案 0 :(得分: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是不同的数据源,我想对齐它们,以便例如缓冲区在同一时间戳关闭。