@Ralph!
I couldn’t help but throw in my 2 cents here. 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Timer_Example
{
public partial class frmTimers : Form
{
public frmTimers()
{
InitializeComponent();
}
private void tickTimer_Tick(object sender, EventArgs e)
{
lock (this)
{
tickTimer.Enabled = false;
label1.AutoSize = true;
label1.Text = DateTime.Now.ToLongTimeString();
System.Diagnostics.Debug.WriteLine(“tickTimer_Tick!”);
tickTimer.Enabled = true;
}
}
private void shutdownTimer_Tick(object sender, EventArgs e)
{
lock (this)
{
tickTimer.Enabled = false;
shutdownTimer.Enabled = false;
label1.Text = “Shutting down in 10 seconds.”;
System.Diagnostics.Debug.WriteLine(“shutdownTimer_Tick!”);
System.Threading.Thread.Sleep(10000);
this.Close();
}
}
private void frmTimers_Load(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(“frmTimers_Load!”);
tickTimer.Enabled = true;
shutdownTimer.Enabled = true;
}
private void frmTimers_FormClosed(object sender, FormClosedEventArgs e)
{
tickTimer.Dispose();
shutdownTimer.Dispose();
System.Diagnostics.Debug.WriteLine(“frmTimers_FormClosed!”);
}
}
}
The trick is to use the System.Windows.Forms.Timer object which is built to do exactly what you are looking for.
Here’s the designer partial class:
namespace Timer_Example
{
partial class frmTimers
{
///
private System.ComponentModel.IContainer components = null;
///
/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.shutdownTimer = new System.Windows.Forms.Timer(this.components);
this.tickTimer = new System.Windows.Forms.Timer(this.components);
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// shutdownTimer
//
this.shutdownTimer.Interval = 10000;
this.shutdownTimer.Tick += new System.EventHandler(this.shutdownTimer_Tick);
//
// tickTimer
//
this.tickTimer.Interval = 1000;
this.tickTimer.Tick += new System.EventHandler(this.tickTimer_Tick);
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = “label1”;
this.label1.Size = new System.Drawing.Size(40, 13);
this.label1.TabIndex = 0;
this.label1.Text = “lblTime”;
//
// frmTimers
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 264);
this.Controls.Add(this.label1);
this.Name = “frmTimers”;
this.Text = “frmTimers”;
this.Load += new System.EventHandler(this.frmTimers_Load);
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmTimers_FormClosed);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Timer shutdownTimer;
private System.Windows.Forms.Timer tickTimer;
private System.Windows.Forms.Label label1;
}
}