/* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794 */ // Timer.cs -- demonstrates using the System.Timers.Timer class. // // Compile this program with the following command line: // C:>csc Timer.cs using System; using System.Windows.Forms; using System.Timers; namespace nsDelegates { public class TimerAndDialog { static int countdown = 10; static System.Timers.Timer timer; static public void Main () { // Create the timer object. timer = new System.Timers.Timer (1000); // Make it repeat. Setting this to false will cause just one event. timer.AutoReset = true; // Assign the delegate method. timer.Elapsed += new ElapsedEventHandler(ProcessTimerEvent); // Start the timer. timer.Start (); // Just wait. MessageBox.Show ("Waiting for countdown", "Text"); } // Method assigned to the timer delegate. private static void ProcessTimerEvent (Object obj, ElapsedEventArgs e) { --countdown; // If countdown has reached 0, it's time to exit. if (countdown == 0) { timer.Close(); Environment.Exit (0); } // Make a string for a new message box. string sigtime = e.SignalTime.ToString (); string str = "Signal time is " + sigtime.Substring (sigtime.IndexOf(" ") + 1); str += " Countdown = " + countdown; // Show a message box. MessageBox.Show (str, "Timer Thread"); } } }