假设我使用Rx,我如何创建一个IObservable,它将每5秒触发一次事件,如何在特定日期进行可观察的开始? 我怎样才能在圆形日期(每个午夜?)点燃它的事件。
答案 0 :(得分:3)
如何创建一个每5秒触发一次事件的IObservable 秒
Observable.Interval(TimeSpan.FromSeconds(5))
如何在特定日期开始观察
您可以使用Timer:
// Fire at Jan 2014.
var jan2014 = new DateTimeOffset(2014, 1, 1, 0, 0, 0);
Observable.Timer(jan2014);
如何让它在圆形日期(每个午夜?)发射它?
定时器有一个过载,允许你在一定的时间内,然后每个设定的时间跨度发射它。看起来应该是这样的:
// Fire at Jan 2014 at midnight, then every 24 hours after that (e.g. every midnight):
var jan2014 = new DateTimeOffset(2014, 1, 1, 0, 0, 0);
Observable.Timer(jan2014, TimeSpan.FromHours(24));
答案 1 :(得分:1)
// Do you really care if it's up to five seconds later than midnight?
Observable.Interval(TimeSpan.FromSeconds(5))
.Where(x => DateTime.Now > new DateTime(1,2,2010));