Advertisement
andruhovski

EventDemo

Oct 5th, 2018
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.60 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.Specialized;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8.  
  9.  
  10. namespace ProgDemo01
  11. {
  12.     class Program
  13.     {
  14.        
  15.         static void Main(string[] args)
  16.         {
  17.  
  18.             var primeNumberCounter1 = new PrimeNumberCounter(10000, 50000);
  19.             primeNumberCounter1.StartCalculation += primeNumberCounter1_StartCalculation;
  20.             primeNumberCounter1.FinishCalculation += primeNumberCounter1_FinishCalculation;
  21.             primeNumberCounter1.RunCounter();
  22.            
  23.         }
  24.  
  25.         private static void primeNumberCounter1_FinishCalculation(PrimeNumberCounter pm, EventArgs args)
  26.         {
  27.             Console.WriteLine("Обчислення завершено");
  28.             Console.WriteLine(pm.Counter);
  29.         }
  30.  
  31.         private static void primeNumberCounter1_StartCalculation(PrimeNumberCounter pm, EventArgs args)
  32.         {
  33.             Console.WriteLine("Обчислення розпочато");
  34.         }
  35.     }
  36.  
  37.     //Обчислити кількість простих чисел від [A;B]
  38.  
  39.     public class PrimeNumberCounter
  40.     {
  41.         public delegate void CalculationHandler (PrimeNumberCounter pm, EventArgs args);
  42.         public event CalculationHandler StartCalculation;
  43.         public event CalculationHandler FinishCalculation;
  44.  
  45.         public int StartNumber { get; set; }
  46.         public int FinishNumber { get; set; }
  47.         public int Counter { get; set; }
  48.  
  49.         public PrimeNumberCounter()
  50.         {
  51.             StartNumber = 0;
  52.             FinishNumber = 0;
  53.             Counter = 0;
  54.         }
  55.  
  56.         public PrimeNumberCounter(int start, int finish)
  57.         {
  58.             StartNumber = start;
  59.             FinishNumber = finish;
  60.             Counter = 0;
  61.         }
  62.  
  63.         public void RunCounter()
  64.         {
  65.             // StartCalculation
  66.             if (StartCalculation != null)
  67.             {
  68.                 StartCalculation(this, new EventArgs());
  69.             }
  70.  
  71.             for (int i = StartNumber; i < FinishNumber; i++)
  72.             {
  73.                 if (isPrime(i)) Counter++;
  74.             }
  75.             // FinishCalculation
  76.             if (FinishCalculation != null)
  77.             {
  78.                 FinishCalculation(this, new EventArgs());
  79.             }
  80.         }
  81.  
  82.         private bool isPrime(int number)
  83.         {
  84.             for (int i = 2; i < number-1; i++)
  85.             {
  86.                 if ((number % i) == 0) return false;
  87.             }
  88.             return true;
  89.         }
  90.     }
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement