假设我有一个可观察的,它每秒调用RefreshMedias,即使其中的方法还没有完成运行:
Observable.Interval(TimeSpan.FromSeconds(1))
.Subscribe(_ => PhotoSourcesService.RefreshMedias())
.DisposeWith(Disposables);
如何调用RefreshMedias等待操作完成,并在操作完成时延迟5秒,然后无限期地再次调用RefreshMedia?
假设RefreshMedias()
同步运行并返回void
,则:
Observable.Defer(() => Observable.Start(() => PhotoSourcesService.RefreshMedias()))
.Concat(Observable.Empty<Unit>().Delay(TimeSpan.FromSeconds(5)))
.Repeat()
.DisposeWith(Disposables);
应该起作用。