Beispiel #1
0
        public void PoolShouldNotAcceptNewTasksAfterShutdown()
        {
            var pool = new CustomThreading.MyThreadPool(10);

            pool.AddTask(() => 5);

            pool.Shutdown();

            for (int i = 0; i < 10; ++i)
            {
                Assert.AreEqual(null, pool.AddTask(() => 10));
            }
        }
Beispiel #2
0
        public void PoolShutdownShouldNotAffectPreviousTasks()
        {
            var pool = new CustomThreading.MyThreadPool(10);

            var tasks = new CustomThreading.IMyTask <int> [10];

            for (int i = 0; i < 10; ++i)
            {
                var localI = i;
                tasks[i] = pool.AddTask(() =>
                {
                    System.Threading.Thread.Sleep(50);
                    return(localI);
                });
            }
            System.Threading.Thread.Sleep(50);

            pool.Shutdown();

            for (int i = 0; i < 10; ++i)
            {
                Assert.AreEqual(i, tasks[i].Result);
            }
        }