When you want to set a timer working with GUI, you always come across threading problem. In such scenario, .Net indeed makes programmers life easier. It only matters that you choose the right timer to use.
In Win Form, you need to use System.Windows.Forms.Timer.
In WPF, the one is System.Windows.Threading.DispatcherTimer.
Here is a simple sample code for DispatcherTimer.
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(someInterval);
timer.Tick += new EventHandler(someEventHandler);
timer.Start();
}
{
private void someEventHandler(Object sender, EventArgs args)
{
some operations
//if you want this event handler executed for just once
// DispatcherTimer thisTimer = (DispatcherTimer)sender;
// thisTimer.Stop();
}
P.S.
For general purpose, you can use System.Threading.Timer.
For server-based purpose, System.Timers.Timer can be the right choice.
출처 : http://wangmo.wordpress.com/2007/09/07/dispatchertimer-in-wpf/