protected override void Dispose(bool disposing) { if (disposing && !_disposed) { _disposed = true; _readBuffer.AbortRead(); _writeBuffer.EndWrite(); if (Interlocked.Decrement(ref _refCount.Value) == 0) { _readBuffer.Dispose(); _writeBuffer.Dispose(); } } base.Dispose(disposing); }