コード例 #1
0
        public override T Pop()
        {
            OOMSoftReference <T> reference = (OOMSoftReference <T>)_freeList.Dequeue();
            T value = reference.Get();

            reference.Clear();
            _spareReferences.Enqueue(reference);
            return(value);
        }
コード例 #2
0
        private byte[] GetByteArray(int requestedSize)
        {
            int bucketedSize = GetBucketedSize(requestedSize);

            byte[] byteArray = _byteArraySoftRef.Get();
            if (byteArray == null || byteArray.Length < bucketedSize)
            {
                byteArray = AllocateByteArray(bucketedSize);
            }

            return(byteArray);
        }