public Task <int> ReadSyncOrAsync(byte[] buffer, int offset, int count, CancellationToken token, Random rnd)
 {
     return(AsyncUtils.SyncOrAsyncMethod(
                () => _reader.ExecuteWithCloseAsyncSemaphore(() => _stream.Read(buffer, offset, count)),
                () => _reader.ExecuteWithCloseAsyncSemaphore(() => _stream.ReadAsync(buffer, offset, count)),
                AsyncUtils.ChooseSyncAsyncMode(rnd)
                ));
 }
 public void Read()
 {
     _reader.ExecuteWithCloseAsyncSemaphore(() => _xmlReader.Read());
 }
 public int Peek()
 {
     return(_reader.ExecuteWithCloseAsyncSemaphore(() => _textReader.Peek()));
 }