【发布时间】:2015-08-20 15:04:30
【问题描述】:
我有一个场景,每次滴答事件都会更改计时器间隔。如下代码所示:
Timer tmrObj = new Timer();
tmrObj.Interval = TimeSpan.FromSeconds(11);
tmrObj.Tick += TimerTickHandler;
public void TimerTickHandler(EventArg arg)
{
tmrObj.pause();
var response = MakeSomeServiceCall();
tmr.Interval = response.Interval;
tmrObj.resume();
}
如果我需要在 Rx 中实现相同的计时器。我可以使用 Timer 功能来实现。但是,如上面的代码所示,我怎样才能在事件刻度上操作间隔。当前的定时器间隔实现如下:
var serviceCall = Observable.FromAsync<DataResponse>(MakeServiceCall);
var timerCall = Observable.Timer(TimeSpan.FromSeconds(100));
var response = from timer in timerCall
from reponse in serviceCall.TakeUntil(timerCall)
.Select(result => result);
【问题讨论】:
标签: c# timer system.reactive reactive-programming