You could also use a Timer, as this would handle all the problems like UI-locking.
You can use the System.Windows.Forms.Timer-Timer. In the MSDN library you can find samples of the use of it.
The WinForms-Timer handles also the invoking across the Timer-thread and the UI-thread.
- SeriTools