using System.Threading; using Fort23.Core; using Fort23.UTool; using Utility; namespace CombatLibrary.CombatLibrary.CombatCore { public class CombatListPool: Singleton> { private readonly CombatPool> s_ListPool = new CombatPool>(); 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 Get() { BetterList betterList = s_ListPool.Get(); betterList.isNotPool = false; if (betterList.tranId != 0) { LogTool.Error("线程冲突"); } betterList.tranId = Thread.CurrentThread.ManagedThreadId; return betterList; } public void Recycle(BetterList toRelease) { toRelease.tranId = 0; toRelease.Clear(); s_ListPool.Recycle(toRelease); } } }