static void Main(string[] args) { object locker = new object(); var csv = new StringBuilder(); Parallel.For(0, Environment.ProcessorCount, i => { for (int x = i * OPERATIONS_PER_THREAD; x < (i + 1) * OPERATIONS_PER_THREAD; x++) { Palindrome p = Palindrome.FromNumeric(x); int result = p.Run(); if (result > 40) { Console.WriteLine("Input: {0}; Steps: {1}; Final palindrome: {2}", x, p.StepsTaken, p.Outcome); lock (locker) { csv.Append($"{x},{p.StepsTaken},{p.Outcome}\n"); } } } }); File.WriteAllText("results.csv", csv.ToString()); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine(Palindrome.FromNumeric(26616).Run(Palindrome.RunMode.Verbose)); Console.WriteLine("End of tests, starting algorithm...\n\n"); RunMany(); Console.ReadLine(); }