設定:
- 最初
IObservable
に型A の値を生成します - 2 番目
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! "));