Dot-Net

使用 Rx 框架按時間間隔立即啟動任務

  • April 22, 2020

我正在嘗試立即執行我的任務,然後按時間間隔執行它。我寫了以下內容:

var syncMailObservable = Observable.Interval(TimeSpan.FromSeconds(15));
syncMailObservable.Subscribe(s => MyTask());

問題是任務僅在 15 秒後開始。我需要在開始時執行我的任務,然後按時間間隔繼續。

我該怎麼做?

你可以這樣做:

var syncMailObservable =
   Observable
       .Interval(TimeSpan.FromSeconds(15.0), Scheduler.TaskPool)
       .StartWith(-1L);
syncMailObservable.Subscribe(s => MyTask());

嘗試這個:

Observable.Return(0).Concat(Observable.Interval(TimeSpan.FromSeconds(15)))
.Subscribe(_ => MyTask());

引用自:https://stackoverflow.com/questions/7784707