Esempio n. 1
0
        // 这个判断说明相同的函数只能加一次,但是如果不同资源使用相同的回调函数就会有问题,但是这个判断可以保证只添加一次函数,值得,因此不同资源需要不同回调函数
        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);
        }
Esempio n. 2
0
 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;
             }
         }
     }
 }
Esempio n. 3
0
        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");
            }
        }
Esempio n. 4
0
 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;
                 }
             }
         }
     }
 }