public void Dispose() { if (_IsDisposed) { return; } _IsDisposed = true; if (_WorkerThread != null) { var workItems = _WorkerThread.WorkItems; _WorkerThread.Dispose(); _WorkerThread = null; IWorkItem <T> wi; while (workItems.TryDequeue(out wi)) { wi.Dispose(); } } BTree.Dispose(); foreach (var index in Indices.Values) { index.Dispose(); } Indices.Clear(); if (OwnsStorage) { Storage.Dispose(); } }
public override void Dispose() { if (OwnsInnerSource) { Inner.Dispose(); } }