Как я могу создать IObservable, который будет запускать событие каждые 5
секунд
Observable.Interval (TimeSpan.FromSeconds (5))
как я могу сделать заметное начало в определенную дату
Вы можете использовать Таймер для этого:
// 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));