Here is an example of the code I have ...
var rootSubject = new Subject<Types>();
var firstSubject = rootSubject.Where(x => x == Types.First);
var secondSubject = rootSubject.Where(x => x == Types.Second);
var thirdSubject = rootSubject.Where(x => x == Types.Third);
var forthSubject = rootSubject.Where(x => x == Types.Forth);
var mergedSubject = Observable.Merge(firstSubject, secondSubject, thirdSubject, forthSubject)
.Timeout(TimeSpan.FromSeconds(2), Observable.Return(Types.Error))
.Replay()
.RefCount();
rootSubject.OnNext(Types.Second);
var result = mergedSubject.First();
Console.WriteLine(String.Format("result - {0}", result));
For some reason, it always just shuts down and returns an error type. Any idea what is going on here?
What I'm trying to do is create a merged Iobservable, which is a thread that acts like a BehaviorSubject, so if OONNext (...) is called before .First (), it will make a difference first.
source
share