Exemplo 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);
            }
        }
Exemplo n.º 2
0
        public Pool(Func <T> resourceFactory, PoolAccessStrategy accessStrategy = PoolAccessStrategy.FIFO)
        {
            this.resourceFactory = resourceFactory;

            resourceStorage = CreateStorage(accessStrategy);
        }