public virtual ObjectBase Acquire() { if (mCircleCaches.Count == 0) { // 生产太多,会多创建空壳。后面从缓存中选取,可能是空壳,进一步需要初始化 Generator(1); } ObjectBase circle = mCircleCaches.First.Value; mCircleCaches.RemoveFirst(); circle.Acquired(); return(circle); }
public virtual void Acquire(int num, List <ObjectBase> result) { if (mCircleCaches.Count < num) { Generator(num - mCircleCaches.Count); } while (result.Count < num) { ObjectBase circle = mCircleCaches.First.Value; mCircleCaches.RemoveFirst(); circle.Acquired(); result.Add(circle); } }