瀏覽代碼
AsyncEnumerable.ToObservable: Do not call IAsyncEnumerator<T>.MoveNext with an already canceled CancellationToken. This would happen whenever an IObserver<T>.OnNext would dispose its subscription within a call to OnNext. The built in AnonymousAsyncEnumerator<T> checks whether it's already disposed, however, not every user code might handle canceled tokens that gracefully. Also, the continuation of MoveNext will not scheduled anyway.