Esempio n. 1
0
        private static IPoolStorage <T> CreateStorage(PoolAccessStrategy strategy)
        {
            switch (strategy)
            {
            case PoolAccessStrategy.FIFO:
                return(new PoolQueueStorage <T>());

            case PoolAccessStrategy.LIFO:
                return(new PoolStackStorage <T>());

            default:
                throw new ArgumentOutOfRangeException("strategy", "Unexpected access strategy: " + strategy);
            }
        }
Esempio n. 2
0
        public Pool(Func <T> resourceFactory, PoolAccessStrategy accessStrategy = PoolAccessStrategy.FIFO)
        {
            this.resourceFactory = resourceFactory;

            resourceStorage = CreateStorage(accessStrategy);
        }