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