Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // <snippet7> | |
| using System; | |
| namespace ConsoleApplication1 | |
| { | |
| class Program | |
| { | |
| static void Main(string[] args) | |
| { | |
| Counter c = new Counter(new Random().Next(10)); | |
| c.ThresholdReached += c_ThresholdReached; | |
| Console.WriteLine("press 'a' key to increase total"); | |
| while (Console.ReadKey(true).KeyChar == 'a') | |
| { | |
| Console.WriteLine("adding one"); | |
| c.Add(1); | |
| } | |
| } | |
| static void c_ThresholdReached(Object sender, ThresholdReachedEventArgs e) | |
| { | |
| Console.WriteLine("The threshold of {0} was reached at {1}.", e.Threshold, e.TimeReached); | |
| Environment.Exit(0); | |
| } | |
| } | |
| class Counter | |
| { | |
| private int threshold; | |
| private int total; | |
| public Counter(int passedThreshold) | |
| { | |
| threshold = passedThreshold; | |
| } | |
| public void Add(int x) | |
| { | |
| total += x; | |
| if (total >= threshold) | |
| { | |
| ThresholdReachedEventArgs args = new ThresholdReachedEventArgs(); | |
| args.Threshold = threshold; | |
| args.TimeReached = DateTime.Now; | |
| OnThresholdReached(args); | |
| } | |
| } | |
| protected virtual void OnThresholdReached(ThresholdReachedEventArgs e) | |
| { | |
| ThresholdReachedEventHandler handler = ThresholdReached; | |
| if (handler != null) | |
| { | |
| handler(this, e); | |
| } | |
| } | |
| public event ThresholdReachedEventHandler ThresholdReached; | |
| } | |
| public class ThresholdReachedEventArgs : EventArgs | |
| { | |
| public int Threshold { get; set; } | |
| public DateTime TimeReached { get; set; } | |
| } | |
| public delegate void ThresholdReachedEventHandler(Object sender, ThresholdReachedEventArgs e); | |
| } | |
| // </snippet7> |