public void Run(IObservable <TFirst> first, IObservable <TSecond> second) { var fstO = new FirstObserver(this); var sndO = new SecondObserver(this); fstO.SetOther(sndO); sndO.SetOther(fstO); _firstDisposable.Disposable = first.SubscribeSafe(fstO); _secondDisposable.Disposable = second.SubscribeSafe(sndO); }
public _(Func <TFirst, TSecond, TResult> resultSelector, IObserver <TResult> observer) : base(observer) { _gate = new object(); _firstObserver = new FirstObserver(this); _secondObserver = new SecondObserver(this); _firstObserver.SetOther(_secondObserver); _secondObserver.SetOther(_firstObserver); _resultSelector = resultSelector; }