public IAsyncEnumerator <T> GetAsyncEnumerator()
        {
            var consumer = new FromObservableEnumerator();
            var d        = _source.Subscribe(consumer);

            consumer.Upstream = d;
            return(consumer);
        }
        public IAsyncEnumerator <T> GetAsyncEnumerator(CancellationToken cancellationToken)
        {
            var consumer = new FromObservableEnumerator();
            var d        = _source.Subscribe(consumer);

            consumer.Upstream = d;
            consumer.CtReg    = cancellationToken.Register(disposable => (disposable as IDisposable)?.Dispose(), d);
            return(consumer);
        }