Advertisement
Rakshalpha

Worker

Aug 16th, 2019
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.02 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4.  
  5. namespace DelegatesAndEvents
  6. {
  7.     //public delegate void WorkPerformedHandler(object sender, WorkPerformedEventArgs e);
  8.  
  9.     public class Worker
  10.     {
  11.         public event EventHandler<WorkPerformedEventArgs> WorkPerformed;
  12.  
  13.         public event EventHandler WorkCompleted;
  14.         public virtual void DoWork(int hours, WorkType workType)
  15.         {
  16.             for (int i = 0; i < hours; i++)
  17.             {
  18.                 OnWorkPerformed(i + 1, workType);
  19.             }
  20.             OnWorkCompleted();
  21.         }
  22.  
  23.         protected virtual void OnWorkPerformed(int hours, WorkType workType)
  24.         {
  25.             var del = WorkPerformed as EventHandler<WorkPerformedEventArgs>;
  26.             del?.Invoke(this, new WorkPerformedEventArgs(hours, workType));
  27.         }
  28.  
  29.         protected virtual void OnWorkCompleted()
  30.         {
  31.             var del = WorkCompleted as EventHandler;
  32.             del?.Invoke(this, EventArgs.Empty);
  33.         }
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement