public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) { if (_isBuffering) { return _buffer.BeginWrite(buffer, offset, count, callback, state); } else { return _innerStream.BeginWrite(buffer, offset, count, callback, state); } }