我正在尝试每天运行一次后台任务,但没有工作,我尝试使用TimeTrigger,但没有工作。
我正在尝试使用SystemTrigger但不能正常工作
// var trigger = new TimeTrigger(15, false);
var trigger = new SystemTrigger(SystemTriggerType.TimeZoneChange, false);
var condition = new SystemCondition(SystemConditionType.InternetAvailable);
var tarefa = await RegistrarTarefasSegundoPlanoAsync.RegisterBackgroundTask(typeof(SalvaImagemTask).FullName, "SalvaImagemTask", trigger, condition);
答案 0 :(得分:1)
你可以通过实现一些逻辑来做到这一点。
让BackgroundTask
每1小时运行一次,即间隔60分钟,如下所示:
BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder { Name = "MyBackgroundTask", TaskEntryPoint = "MyRuntimes.BackgroundTask" };
taskBuilder.SetTrigger(new TimeTrigger(60, false));
taskBuilder.SetTrigger(trigger);
BackgroundTaskRegistration myFirstTask = taskBuilder.Register();
在BackgroundTask
内,查看系统当地时间,如果是早上时间,您可以启动所需的功能。
这是我能想到的最佳选择,因为您无法在早上执行后台任务。但从逻辑上讲,你每隔1小时就会运行一次后台任务,并检查条件是否为早晨时间。
希望你有我的逻辑。 谢谢!
答案 1 :(得分:-1)
有一个非常类似的问题被回答here。它使用Windows Scheduled Tasks。