/// <summary> /// Releases unmanaged and - optionally - managed resources. /// </summary> /// <param name="isDisposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool isDisposing) { if (!IsDisposed) { if (isDisposing) { if (CountersAvailable != null && CountersAvailable.Count > 0) { CountersAvailable.ToList().ForEach(x => { x.Value.Close(); x.Value.Dispose(); }); } } IsDisposed = true; } }
/// <summary> /// Releases unmanaged and - optionally - managed resources. /// </summary> /// <param name="isDisposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool isDisposing) { if (_isDisposed) { return; } if (isDisposing) { var counters = CountersAvailable.ToList(); counters.ForEach(_ => { _.Value?.Close(); _.Value?.Dispose(); }); } _isDisposed = true; }