设置:
- 首先
IObservable
产生类型A 的值 - 第二个
IObservable
产生类型B的值 - 它们以不同的速度产生价值(非常快,最多每 10 毫秒)
我想要达到的目标:
每N次(N 相当慢,大约 500 毫秒)必须对服务进行调用,并提供来自First和Second IObservable
的最新值。
问题: 我想知道如何使用 RX。
当前解决方案(不工作):
var stateObs = from drag in dragObs.MostRecent(0).ToObservable()
from roll in rollObs.MostRecent(0).ToObservable()
select new ClientState
{
FileDragPerc = drag,
PhoneRoll = roll,
PendingFileType = FileType.Image,
TransferState = TransferState.SelectiveTransfer
};
stateObs.Sample(TimeSpan.FromMilliseconds(300))
.Subscribe(x => _lsService.SetClientStateAsync(x),
x => Debug.WriteLine("Error in observable "),
() => Debug.WriteLine("Error observable finished! "));