/// <summary> /// Execute the disposal. /// </summary> /// <param name="disposing">True if called from <see cref="Dispose()"/>, false otherwise.</param> protected virtual void Dispose(bool disposing) { if (_disposed) { return; } if (disposing) { Stop(); _cancellationSource.Dispose(); } ClearServices(); var removed = DicomServer.Unregister(this); if (!removed) { Logger.Warn( "Could not unregister DICOM server on port {0}, either because never registered or because has already been unregistered once.", Port); } _disposed = true; }