Пример #1
0
        static void Main(string[] args)
        {
            IExecutorService executorService = Executors.NewFixedThreadPool(THREAD_POOL_SIZE);



            for (int i = 0; i < 100; i++)
            {
                SumNumbers sumNumbers = new SumNumbers(10000000 + i);
                executorService.Execute(sumNumbers.CalculateSum);
            }

            for (int i = 0; i < 100; i++)
            {
                SumNumbers2 sumNumbers2 = new SumNumbers2();
                executorService.Execute(() => sumNumbers2.CalculateSumWithArgs(100));
            }

            // This will make the executor accept no new threads
            // and finish all existing threads in the queue
            executorService.Shutdown();

            // Wait until all threads are finish
            while (!executorService.IsTerminated)
            {
            }

            Console.WriteLine("Finished all threads.  Hit enter to exit");
            Console.ReadLine();
        }
Пример #2
0
        public void Test1(int numbersToSum, int expected)
        {
            var inputs = File.ReadLines("input.txt")
                         .Select(int.Parse)
                         .ToList();

            var result = SumNumbers.GetNumbersWithSumX(inputs, 2020, numbersToSum).Aggregate((a, x) => a * x);

            Assert.Equal(expected, result);
        }
Пример #3
0
        private static CalculationChainBase CreateChain()
        {
            var sum      = new SumNumbers();
            var subtract = new SubtractNumbers();
            var multiply = new MultiplyNumbers();
            var divide   = new DivideNumbers();

            sum.SetSucessor(subtract);
            subtract.SetSucessor(multiply);
            multiply.SetSucessor(divide);

            return(sum);
        }
Пример #4
0
 static void Main()
 {
     Console.WriteLine("Сумма натуральных двузначных чисел которые делятся на 3 равна " + SumNumbers.CountNumbers());
 }