Я использую System.Timers.Timer в своих службах Windows.Это легко контролировать и подключать.Intellisense VS 2010 даже создает обработчик прошедших событий при вводе «myTimer.Elapsed + = ...»
Вы также можете остановить таймер в начале вашего обработчика событий и перезапустить его в конце, если вы не нажалине нужно запускать таймер до того, как обработчик событий завершится при длительной обработке.Например:
System.Timers.Timer myTimer;
void Main()
{
myTimer = new System.Timers.Timer(1000);
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.Start();
}
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
myTimer.Stop();
// process event
myTimer.Start();
}