示例#1
0
        public static byte[] TakeBufferAndReturn(this ClearHelper ch, int bufferSize)
        {
            var result = ObjectPool.Default.TakeBuffer(bufferSize);

            if (null != result)
            {
                ch.Push(c => ObjectPool.Default.ReturnBuffer((byte[])c), result);
            }
            return(result);
        }
示例#2
0
        public static T TakeObjectAndReturn <T>(this ClearHelper ch) where T : class
        {
            var result = ObjectPool.TakeObject <T>();

            if (null != result)
            {
                ch.Push(c => ObjectPool.ReturnObject <object>(c), result);
            }
            return(result);
        }
示例#3
0
        static ObjectPoolSettingItem OnPoolRegister()
        {
            var result = new ObjectPoolSettingItem()
            {
                PoolType  = typeof(ClearHelper),
                Creator   = () => new ClearHelper(),
                EnterPool = c =>
                {
                    ClearHelper clearHelper = (ClearHelper)c;
                    clearHelper._Actions.Clear();
                    clearHelper.disposedValue = false;
                    return(true);
                },
            };

            return(result);
        }
示例#4
0
 public static MemoryStream TakeMemoryStreamAndReturn(this ClearHelper ch)
 {
     return(ch.TakeObjectAndReturn <MemoryStream>());
 }
示例#5
0
 public static StringBuilder TakeStringBuilderAndPushReturn(this ClearHelper ch)
 {
     return(ch.TakeObjectAndReturn <StringBuilder>());
 }