// 这个判断说明相同的函数只能加一次,但是如果不同资源使用相同的回调函数就会有问题,但是这个判断可以保证只添加一次函数,值得,因此不同资源需要不同回调函数 public bool existEventHandle(Action <IDispatchObject> handle) { bool bFinded = false; foreach (var item in m_handleList.list) { if (UtilApi.isAddressEqual(item.m_handle, handle)) { bFinded = true; break; } } return(bFinded); }
public override void delObject(IDelayHandleItem delayObject) { if (bInDepth()) { base.delObject(delayObject); } else { foreach (TickProcessObject item in m_tickLst) { if (UtilApi.isAddressEqual(item.m_tickObject, delayObject)) { m_tickLst.Remove(item); break; } } } }
public void removeEventHandle(Action <IDispatchObject> handle) { int idx = 0; for (idx = 0; idx < m_handleList.Count(); ++idx) { if (UtilApi.isAddressEqual(m_handleList[idx].m_handle, handle)) { break; } } if (idx < m_handleList.Count()) { delObject(m_handleList[idx]); } else { Ctx.m_instance.m_logSys.log("Event Handle not exist"); } }
public override void delObject(IDelayHandleItem delayObject) { // 检查当前是否在队列中 if (m_timerLists.IndexOf(delayObject as TimerItemBase) != -1) { (delayObject as TimerItemBase).m_disposed = true; if (bInDepth()) { base.delObject(delayObject); } else { foreach (TimerItemBase item in m_timerLists) { if (UtilApi.isAddressEqual(item, delayObject)) { m_timerLists.Remove(item); break; } } } } }