Example #1
0
        private void _generateElement()
        {
            CBufferBlock block;
            int          nOffset = -SizeOfBlock; //첫 블록을 반복문 시작 때 가르키기 위해 -1블록 위치를 지정

            for (int i = 0; i < Capacity; i++)
            {
                nOffset += SizeOfBlock;         //다음블록으로 offset이동
                block    = new CBufferBlock(m_arrPool, nOffset, SizeOfBlock);
                m_stackServiceableObjectPool.Push(block);
                m_arrCBufferBlockHash[i] = block.GetHashCode();
            }
        }
Example #2
0
        public void push(CBufferBlock block)
        {
            if (block == null)
            {
                throw new ArgumentNullException("Block object is null");
            }


            int?resFind = Array.Find(m_arrCBufferBlockHash, x => x == block.GetHashCode());

            if (resFind != null)
            {
                m_stackServiceableObjectPool.Push(block);
            }
            else
            {
                throw new ArgumentException("해당 객체 풀에서 생성된 객체가 아닙니다.");
            }
        }