示例#1
0
文件: Tangle.cs 项目: sq/DataMangler
        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();
            }
        }
示例#2
0
 public override void Dispose()
 {
     if (OwnsInnerSource)
     {
         Inner.Dispose();
     }
 }