private Task <int> ValidateState(CancellationToken cancellationToken) { switch (_state) { case FrameStreamState.Open: if (cancellationToken.IsCancellationRequested) { return(TaskUtilities.GetCancelledZeroTask(cancellationToken)); } break; case FrameStreamState.Closed: throw new ObjectDisposedException(nameof(FrameRequestStream)); case FrameStreamState.Aborted: return(_error != null? TaskUtilities.GetFaultedTask(_error) : TaskUtilities.GetCancelledZeroTask()); } return(null); }