Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/gm0stache/EventPatternStudy. Simple example on how to use events in C#. The event can be canceled (aka. stopped) by any one subscriber by modifying the event args.
Something went wrong. Try again.
EventPatternStudy EventProvider.cs
1.4 kB · 51 lines
C#
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051using System;using System.Timers;
namespace EventPatternStudy{ public class EventProvider { private readonly System.Timers.Timer _timer; private int _eventCounter = 1; public event EventHandler<NewNumberEventArgs> NewNumber;
public EventProvider() { _timer = new System.Timers.Timer(); _timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed); _timer.Interval = 3000; _timer.AutoReset = true; }
private void OnTimerElapsed(object sender, ElapsedEventArgs args) { var eventArgs = new NewNumberEventArgs(_eventCounter++); NewNumber?.Invoke(this, eventArgs); if (eventArgs.Cancel) { Console.WriteLine($"Event '{nameof(NewNumber)}' was canceled."); Stop(); }
; }
public void Start() => _timer.Start();
private void Stop() => _timer.Stop(); }
public class NewNumberEventArgs : EventArgs { public NewNumberEventArgs(int eventNumber) { EventNumber = eventNumber; TimeStamp = DateTime.Now; }
public int EventNumber { get; } public DateTime TimeStamp { get; } public bool Cancel { get; set; } }}