コード例 #1
0
        public virtual ObjectBase Acquire()
        {
            if (mCircleCaches.Count == 0)
            {
                // 生产太多,会多创建空壳。后面从缓存中选取,可能是空壳,进一步需要初始化
                Generator(1);
            }
            ObjectBase circle = mCircleCaches.First.Value;

            mCircleCaches.RemoveFirst();
            circle.Acquired();
            return(circle);
        }
コード例 #2
0
        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);
            }
        }