Услуга не повторяется. Он просто запускается один раз, а затем работает до тех пор, пока не остановлен. Если вам нужно выполнять повторяющиеся задачи, вам нужно позаботиться о повторении в своем коде.
Конечно, вы могли бы настроить некрасивую систему с бесконечной for
-l oop и Thread.Sleep()
, но проблема, возникающая при запуске службы, Windows ожидает от OnStart
до fini sh, поэтому можно сделать вывод, что служба начал , а не все еще запускается . Функция OnStart
должна подготовить все для запуска операций службы, но она не должна сама выполнять эти операции.
Итак, причина, по которой таймер используется для этого, заключается в том, что * Функция 1019 * может корректно завершить sh, и затем после этого периодически сервисные операции, в вашем случае функция GetFailedProductDetails()
, могут запускаться таймером.
Что касается этой части Конфиг, как я уже сказал в своем комментарии, немного xml не код. В руководстве, которое вы скопировали, явно написано программирование для чтения, интерпретации и применения этих настроек, чтобы настроить объект Timer, чтобы он повторялся через заданные интервалы. Копирование этого xml без копирования сопровождающего кода не поможет вам.
Вы можете , конечно, использовать файл конфигурации для установки настроек интервала, но тогда вы будете также на самом деле нужно написать код, чтобы прочитать их. Однако концепция повторяющейся услуги не требует таких настроек. Вы можете отлично запрограммировать услугу с жестко заданным интервалом в полчаса и оставить все как есть.