示例#1
0
        public override void RemoveHandler(object sender, RemoveEventArgs e)
        {
            string key   = e.Key;
            int    index = key.IndexOf(DataProvider.Delimiter);

            if (index > 0)
            {
                string     processName = key.Substring(0, index);
                LJBinsTree binTree     = DataProvider.CachedKeyDictionary[processName] as LJBinsTree;
                if (binTree != null)
                {
                    lock (binTree)
                    {
                        LJTreeNode treeNode = binTree.FindNode(
                            new CacheBinInfo(DataProvider.Delimiter, key),
                            binTree.GetRoot());
                        if (treeNode != null)
                        {
                            LJTreeNode parNode = treeNode.Parent;
                            binTree.Delete(treeNode.data);
                            while (parNode != null && parNode.Left == null)
                            {
                                LJTreeNode par1Node = parNode.Parent;
                                binTree.Delete(parNode.data);
                                parNode = par1Node;
                            }
                        }
                    }
                }
            }
        }
示例#2
0
 public virtual void RemoveHandler(object sender, RemoveEventArgs e)
 {
 }