Example #1
0
        public void Invoke_MaxDegreeOfParallelismIsGreaterThenThreads_RunAllThreadsParallel()
        {
            const int degreeOfParallelism = 10;
            var       manager             = new TotalParallelismThreadManager(degreeOfParallelism, 1000);

            ThreadManagmentTestUtils.TestThatAllThreadsRunInParallel(manager);
        }
Example #2
0
        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);
        }