public IDisposable Run() { this.length = this.sources.Length; if (this.length == 0) { this.OnNext(new T[0]); try { this.observer.OnCompleted(); } finally { base.Dispose(); } return(Disposable.Empty); } this.completedCount = 0; this.values = new T[this.length]; IDisposable[] array = new IDisposable[this.length]; for (int i = 0; i < this.length; i++) { IObservable <T> observable = this.sources[i]; WhenAllObservable <T> .WhenAll.WhenAllCollectionObserver observer = new WhenAllObservable <T> .WhenAll.WhenAllCollectionObserver(this, i); array[i] = observable.Subscribe(observer); } return(StableCompositeDisposable.CreateUnsafe(array)); }
public WhenAllCollectionObserver(WhenAllObservable <T> .WhenAll_ parent, int index) { this.parent = parent; this.index = index; }