Пример #1
0
        public async Task ShouldFillUntilMaximumSize_Async(int maxSize)
        {
            var pool = new ObjectPool<MyPooledObject>(0, maxSize);
            var objectCount = maxSize * 4;
            var objects = new MyPooledObject[objectCount];
            Parallel.For(0, objectCount, i =>
            {
                objects[i] = pool.GetObject();
            });
            Parallel.For(0, objectCount, i =>
            {
                objects[i].Dispose();
            });
#if !NET40
            await Task.Delay(1000);
#else
            await TaskEx.Delay(1000);
#endif
            pool.AdjustPoolSizeToBounds(AdjustMode.Minimum | AdjustMode.Maximum);
            Assert.AreEqual(maxSize, pool.ObjectsInPoolCount);
        }