public virtual void Dispose() { if (IsEmpty()) { return; } LinkNode <T> pNext = head; //此时为更改原来的指针 // LinkNode<T> pNext = new LinkNode<T>(); // pNext = head; while (pNext.Next != null) { LinkNode <T> curNode = pNext.Next; pNext = pNext.Next; curNode.Dispose(); } if (head != null) { this.head.Dispose(); } }
public virtual void Dispose() { if (!this.IsEmpty()) { LinkNode <T> head = this.head; while (head.Next != null) { LinkNode <T> next = head.Next; head = head.Next; next.Dispose(); } if (this.head != null) { this.head.Dispose(); } } }
public void RemoveCondition(float timer) { if (IsEmpty()) { return; } LinkNode <CheckBackMsg> pNext = this.Head; // LinkNode<T> node =new LinkNode<T>(obj); // 首先释放头部以后 while (pNext.Next != null) { LinkNode <CheckBackMsg> tmpNode = pNext.Next; if (tmpNode.Data.ReduceTime(timer)) { sendBackMsg.ChangeEventId(tmpNode.Data.msgId); MsgCenter.instance.SendToMsg(sendBackMsg); pNext.Next = tmpNode.Next; tmpNode.Dispose(); } else { pNext = pNext.Next; } } // 判断头部是否 if (this.Head.Data.ReduceTime(timer)) { LinkNode <CheckBackMsg> tmpNode = this.Head; sendBackMsg.ChangeEventId(tmpNode.Data.msgId); MsgCenter.instance.SendToMsg(sendBackMsg); this.Head = this.Head.Next; tmpNode.Dispose(); } }