Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            PrimesFinder primesFinder = new PrimesFinder();
            JsonWorker   jsonWorker   = new JsonWorker();

            SettingsWrapper settingsWrapper = jsonWorker.ReadSettings();

            if (settingsWrapper.IsSuccess == false)
            {
                jsonWorker.WriteResult(new Result(false, TimeSpan.Zero.ToString(), null, settingsWrapper.Error));
                return;
            }

            Stopwatch     stopwatch = Stopwatch.StartNew();
            List <Thread> threads   = new List <Thread>();

            foreach (var element in settingsWrapper.Settings)
            {
                if (element == null)
                {
                    continue;
                }

                Thread workThread = new Thread(primesFinder.FindPrimes);
                workThread.Start(element);
                threads.Add(workThread);
            }
            threads.ForEach(thread => thread.Join());
            stopwatch.Stop();

            var primes = primesFinder.Primes.GetElements();

            Array.Sort(primes);
            jsonWorker.WriteResult(new Result(true, stopwatch.Elapsed.ToString(), primes));
        }
Ejemplo n.º 2
0
 public void Add(Settings st)
 {
     lock (marker)
     {
         var primesList = PrimesFinder.FindPrimes(st);
         primesList.ForEach(x => List.Add(x));
         List = List.Distinct().OrderBy(x => x).ToList();
     }
 }