Это не вопрос, просто делюсь своим "открытием"
В службе которую пишу требуется раз в сутки выполнять процедуру очистки кэша от накопившихся файлов.
Использовал таймер в котором просто ставил нужное кол-во микросекунд.
TimerAlarm.Interval:=ЧасВыполнения*60*60*1000 + МинутаВыполнения*60*1000 - MilliSecondOfTheDay(Now);
И в Win8.1 это прекрасно работало. Срабатывание происходило в час и минуту указанные в настройках.
А в Win10 служба висла. Отловил вот такое сообщение
EOutOfResources: No timers available
Что там за ограничение искать и разбираться не стал.
Просто таймер поставил на 60000, и раз в минуту уменьшаю посчитанное (таким же образом) кол-во минут в отдельной переменной.