Запускать фоновую задачу в определенное время - приложение для Windows 10

Я искал способ запускать фоновую задачу ежедневно в определенное время, например. в 12:00.

Я зарегистрировал BackgroundTask с помощью TimeTrigger, который, к сожалению, запускается сразу после регистрации.

builder.SetTrigger(new TimeTrigger(24 * 60, false));

Есть ли более простой способ, чем проверять каждый час, правильное ли это время суток?


person Matt126    schedule 26.08.2015    source источник


Ответы (2)


Похоже, что Microsoft избегает запуска приложений в точное время, но вы можете приблизиться, подсчитав количество минут с момента регистрации задачи пользователем до 12:00, а затем повторно подписаться на другую задачу оттуда, установленную на 24 * 60. как и у вас. Я не уверен, разрешает ли Microsoft это в фоновой задаче, но попробовать стоит.

Пример расчета минут до полуночи для задачи

var tommorowMidnight = DateTime.Today.AddDays(1);
var timeTilMidnight = tommorowMidnight - DateTime.Now;
var minutesTilMidnight = (uint)timeTilMidnight.TotalMinutes;
builder.SetTrigger(new TimeTrigger(minutesTilMidnight, true));
person colorfulchew    schedule 15.09.2015
comment
Звучит интересно, я попробую. - person Matt126; 15.09.2015
comment
Это действительно работает более одного раза? Я думал, что время свежести - это то, как часто что-то будет происходить, а не то, когда это произойдет. Скажем, сейчас 10:30, и я хочу запустить задачу в 12:00. Я могу вычислить, что 12:00 - это 90 минут. За исключением того, насколько я могу судить, тогда задача будет выполняться каждые 90 минут, а не каждый день в 12:00 ??? - person BGTurner; 31.01.2017

Я использовал эту оболочку задачи для создания чего-то подобного раньше, и она запускалась каждый день. Может быть, это то, что вы ищете.

http://taskscheduler.codeplex.com/

person thewisegod    schedule 26.08.2015
comment
Доступно ли это и для приложений Windows 10? Я думаю, он поддерживает только настольные приложения. - person Matt126; 27.08.2015