我怎么做背景任务每天早上跑一次?

时间:2015-08-28 16:11:28

标签: c# windows-phone-8.1 windows-10

我正在尝试每天运行一次后台任务,但没有工作,我尝试使用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);

2 个答案:

答案 0 :(得分:1)

你可以通过实现一些逻辑来做到这一点。

  1. 注册后台任务
  2. 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();

  3. BackgroundTask内,查看系统当地时间,如果是早上时间,您可以启动所需的功能。

  4. 这是我能想到的最佳选择,因为您无法在早上执行后台任务。但从逻辑上讲,你每隔1小时就会运行一次后台任务,并检查条件是否为早晨时间。

    希望你有我的逻辑。 谢谢!

答案 1 :(得分:-1)

有一个非常类似的问题被回答here。它使用Windows Scheduled Tasks