public void Recycle(ECS_Disposer obj) { Type type = obj.GetType(); ECS_Queue <ECS_Disposer> queue; if (!this.dictionary.TryGetValue(type, out queue)) { queue = new ECS_Queue <ECS_Disposer>(); this.dictionary.Add(type, queue); } queue.Enqueue(obj); }
public ECS_Disposer Fetch(Type type) { ECS_Queue <ECS_Disposer> queue; if (!this.dictionary.TryGetValue(type, out queue)) { queue = new ECS_Queue <ECS_Disposer>(); this.dictionary.Add(type, queue); } ECS_Disposer obj; if (queue.Count > 0) { obj = queue.Dequeue(); obj.Id = IdGenerater.GenerateId(); return(obj); } obj = (ECS_Disposer)Activator.CreateInstance(type); return(obj); }