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(); }
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); }
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); }
static void Main() { Console.WriteLine("Сумма натуральных двузначных чисел которые делятся на 3 равна " + SumNumbers.CountNumbers()); }