| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | using System.Threading;using Fort23.Core;using Fort23.UTool;using Utility;namespace CombatLibrary.CombatLibrary.CombatCore{    public class CombatListPool<T>: Singleton<CombatListPool<T>>    {        private  readonly CombatPool<BetterList<T>> s_ListPool = new CombatPool<BetterList<T>>();        public CombatListPool()        {#if !COMBAT_SERVER            // EventManager.Instance.AddEventListener(CustomEventType.ClearList, ClearList);#endif        }        private void ClearList(IEventData iEventData)        {#if !COMBAT_SERVER            s_ListPool.Clear();#endif        }        public  BetterList<T> Get()        {                      BetterList<T> betterList = s_ListPool.Get();                betterList.isNotPool = false;                if (betterList.tranId != 0)                {                    LogTool.Error("线程冲突");                }                betterList.tranId = Thread.CurrentThread.ManagedThreadId;                return betterList;                    }        public  void Recycle(BetterList<T> toRelease)        {                   toRelease.tranId = 0;                toRelease.Clear();                s_ListPool.Recycle(toRelease);                    }    }}
 |