I did this for 2 seconds instead of 10 minutes (600000 milliseconds):
Timer t = new Timer(2000);
int timerCounter = 20;
t.Elapsed += delegate(object sender, ElapsedEventArgs args)
{
--timerCounter;
if (timerCounter > 0)
{
Console.WriteLine("Counter = " + timerCounter + ", Time is " + DateTime.Now.ToLongTimeString());
}
else
{
Console.WriteLine("Time expired, Time is " + DateTime.Now.ToLongTimeString());
t.Stop();
}
};
t.Start();