Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void Main(string[] args)
- {
- //WorkPerformedHandler del1 = new WorkPerformedHandler(WorkPerformed1);
- //WorkPerformedHandler del2 = new WorkPerformedHandler(WorkPerformed2);
- //WorkPerformedHandler del3 = new WorkPerformedHandler(WorkPerformed3);
- //del1 += del2 + del3;
- //int finalHours = del1(10, WorkType.GenerateReports);
- //Console.WriteLine(finalHours);
- var worker = new Worker();
- worker.WorkPerformed += delegate(object sender, WorkPerformedEventArgs e)
- {
- Console.WriteLine("Hours worked: " + e.Hours + " " + e.WorkType);
- };
- worker.WorkCompleted += delegate(object sender, EventArgs e)
- {
- Console.WriteLine("Worker is done");
- };
- worker.DoWork(8, WorkType.GenerateReports);
- Console.Read();
- }
- public enum WorkType
- {
- GoToMeetings,
- Golf,
- GenerateReports
- }
- public class Worker
- {
- public event EventHandler<WorkPerformedEventArgs> WorkPerformed;
- public event EventHandler WorkCompleted;
- public void DoWork(int hours, WorkType workType)
- {
- for (int i = 0; i < hours; i++)
- {
- System.Threading.Thread.Sleep(1000);
- OnWorkPerformed(i + 1, workType);
- }
- OnWorkCompleted();
- }
- protected virtual void OnWorkPerformed(int hours, WorkType workType)
- {
- //if (WorkPerformed != null)
- //{
- // WorkPerformed(hours, workType);
- //}
- var del = WorkPerformed as EventHandler<WorkPerformedEventArgs>;
- if (del != null)
- {
- del(this, new WorkPerformedEventArgs(hours, workType));
- }
- }
- protected virtual void OnWorkCompleted()
- {
- //if (WorkCompleted != null)
- //{
- // WorkCompleted(this, EventArgs.Empty);
- //}
- var del = WorkCompleted as EventHandler;
- if (del != null)
- {
- del(this, EventArgs.Empty);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement