public void Invoke_MaxDegreeOfParallelismIsGreaterThenThreads_RunAllThreadsParallel() { const int degreeOfParallelism = 10; var manager = new TotalParallelismThreadManager(degreeOfParallelism, 1000); ThreadManagmentTestUtils.TestThatAllThreadsRunInParallel(manager); }
public void Invoke_CheckThatOnlyMaxDegreeOfParallelismThreadsRunParallel(int degreeOfParallelism) { var startedThreads = new List <int>(); var manager = new TotalParallelismThreadManager(degreeOfParallelism, 1000); Task.Run(() => { for (int i = 0; i < 50; i++) { manager.Invoke(() => { startedThreads.Add(1); return(ThreadManagmentTestUtils.slowAction()); }, 1); } }); Thread.Sleep(100); Assert.AreEqual(degreeOfParallelism, startedThreads.Count); }