/// <inheritdoc /> public void Dispose() { _subjectHostProxy.TryDispose(); _client.Dispose(); _server.Dispose(); _isDisposed = true; }
/// <inheritdoc /> public void Dispose() { lock (_syncRoot) { if (IsDisposed) { return; } if (_isDisposing) { return; } _isDisposing = true; } _queue.Dispose(); if (!HasProcessFailed) { _subjectHost.TryDispose(); } _endPoint.TryDispose(); _process.TryKill(); _process.TryDispose(); lock (_syncRoot) { IsDisposed = true; _isDisposing = false; } }