2012-09-06 6 views
0

모든 T가 두 개 이상 (IObservable<T>) 생성되었습니다. 다른 하나보다 더 빨리 되돌아 오는 Task<IEnumerable<T>>에서 생성되었습니다. 내가 신경 쓰는 것은 첫 번째 값을 반환하는 IObservable입니다.이 값은 이후에 사용하는 값입니다.Rx IObservable - 첫 번째 IObservable 스트림을 반환하여 값을 얻습니다.

케임브리지에서 Jon Skeet 프리젠 테이션에 참석 한 것을 기억합니다. 정확히 TPL을 사용하여이 작업을 수행했지만 정확히 기억하지 못합니다. 이상적으로는이 같은 방법 뭔가 얻을 것 :

IObservable<T> PickFastestObservable<T>(IEnumerable<IObservable<T>> slowObservables); 

을하지만 직접 작업에 그것을해야한다면, 나는 아마 뭔가를 해결할 수 있습니다.

저는 자신감이 넘치는 뭔가를 얻으려고 애를 쓰고 있습니다.

건배,

답변

5

난 당신이, 예를 들어 Observable.Amb을 원한다고 생각

IObservable<T> fastest = slowObservables.Amb(); 
+0

훌륭해 - 고마워. – jamespconnor

+0

첫 번째 값이 통과되면 다른 IObservables (핫 관찰 가능)에서 탈퇴합니까? – jamespconnor

+2

@jamespconnor - 문서에 세부 사항은 없지만 값이 있으면 구독을 릴리스 할 것으로 기대합니다. – Lee

관련 문제