public override async Task DrainAsync( CancellationToken cancellationToken ) { if ( this._state >= State.Drained ) { return; } while ( await this.ReadAsync( cancellationToken ).ConfigureAwait( false ) ) { // nop } this._state = State.Drained; }