public void StopReading(bool raiseCloseCallback = true) { if (Interlocked.Exchange(ref _reading, 0) == 1) { if (raiseCloseCallback) { _closeCallback(); } } }