Rx.Net을 배우고 있으며 수많은 간격으로 실행되는 스케줄러를 만들고 있습니다. 개념은 내가 간격의 모음과 명령의 모음을 가지고 있고, 그것들을 하나로 묶고 병합 된 결과에 구독한다는 것이다. 각 명령은 해당 간격과 연관되며 연관과 함께 정의 된 간격 (종지)에 실행됩니다.Observable과 State를 쌍으로 만드는 방법은 무엇입니까?
간격을 병합 할 수 있지만이 명령 (상태)을 구독에 전달하는 방법을 파악하는 데 시간이 많이 걸리고 있습니다. 나는 Scan
함수를 보았지만, 이것은 집계하고 결합/튜플이 아닌 것처럼 보입니다. 여기 내 코드는 다음과 같습니다.
var intervals = new[]
{
TimeSpan.FromSeconds(30),
TimeSpan.FromSeconds(60),
TimeSpan.FromSeconds(90)
};
var commands = new Action[]
{
() => Console.WriteLine("30 Seconds!"),
() => Console.WriteLine("60 Seconds!"),
() => Console.WriteLine("90 Seconds!")
};
intervals.Zip(commands, ValueTuple.Create)
.Select(x => Observable.Interval(x.Item1)) // <-- Need magic here. :)
.Merge()
.Subscribe(x =>
{
x.Item2(); // Broken, x is a long.
});
여기서 달성하고자하는 방법은 있습니까? Scan
과 같지만 누적 기가 아니라 튜플러 (단어 인 경우)입니다.
우후! 그게 바로 제가 찾고 있던 것이 었습니다! 슈퍼 간단한 (그리고 조금 분명 하하) 부팅합니다. 고마워요 @Shlomo! –