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); }