2013-06-10 4 views
0
Observable.Interval(TimeSpan.FromSeconds(5)) 
.Timeout(dueTime: DateTimeOffset.UtcNow, 
other: Observable.Return<long>(-1)) 
.Subscribe(Console.WriteLine); 

위의 코드 조각은 시간이 초과되면 -1을 반환합니다. 그러나 select 연산자처럼 시퀀스를 매핑 할 수있는 무언가가 필요합니다.Rx Timeout with Select?

나는 내가 같은 것을 할 수 있도록 내가

Observable.Interval(TimeSpan.FromSeconds(5)) 
    .Timeout<long, string>(dueTime: DateTimeOffset.UtcNow, 
    other: i=> Observable.Return<string>(i * i.ToString())) 
    .Subscribe(Console.WriteLine); 

사람이 나를 계몽 할 수있는

.Timeout(DateTimeOffset dueTime, Func<IObservable<TSource>,Func<TSource, TResult> selector) 

뭔가를해야한다고 생각? 감사.

답변

1

에 대해 어떻게 :

IObservable<Unit> DoWork() 
{ 
    return Observable.Start(() => Thread.Sleep(1000)); 
} 
:

Observable.Interval(TimeSpan.FromSeconds(5)) 
    .SelectMany(x => DoWork().Timeout(...)) 
    .Subscribe(Console.WriteLine); 

당신은 DoWork을 구현할 수