Beispiel #1
0
        public static IObservable <long> PeriodicTimer(DateTimeOffset dueTime, TimeSpan period, IScheduler scheduler)
        {
            Invariant.ArgumentNotNull((object)scheduler, "scheduler");
            TimeSpan p = ObservableTimers.Normalize(period);

            return(Observable.Create <long>((Func <IObserver <long>, IDisposable>)(observer =>
            {
                long count = 0;
                return scheduler.Schedule(dueTime, (Action <Action <DateTimeOffset> >)(self =>
                {
                    IObserver <long> observer1 = observer;
                    long num1 = count;
                    count = num1 + 1L;
                    long num2 = num1;
                    observer1.OnNext(num2);
                    self(scheduler.Now + p);
                }));
            })));
        }