Beispiel #1
0
 /// <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;
            }
        }