Как настроить автоматический перезапуск приложения-службы Windows, C #? - PullRequest
0 голосов
/ 09 мая 2011

Мне нужно создать службу Windows, которая будет выполняться каждые несколько раз, каждый час. Вопрос в том, какой элемент управления таймером следует использовать: System.Timers.Timer или System.Threading.Timer? Я спрашиваю, потому что я читал через форум, и я получаю несколько смешанных отзывов на обоих. Кроме того, объяснения довольно трудно следовать, так как я довольно новичок в программировании. Спасибо.

Ответы [ 2 ]

1 голос
/ 09 мая 2011

Прочитайте описание Таймера @Jon Skeet: http://www.yoda.arachsys.com/csharp/threads/timers.shtml

0 голосов
/ 09 мая 2011

Я использую 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();
}
...