Windows 8 时间触发了后台任务



我想每 8 小时执行一次后台任务(更频繁就可以了)。如果计算机在后台任务应该执行时关闭或休眠,它只是跳过该迭代,这是真的吗?

假设确实如此,我的下一个要求是在计算机退出休眠状态或打开时安排它。后者很简单;我可以在会话开始时安排系统触发的后台任务。但是我不确定如何处理用户"取消休眠"计算机的情况。对此有什么建议吗?UserPresent 触发器看起来很有希望,但我无法找到何时触发的任何定义。

请参阅此注释:http://blogs.msdn.com/b/windowsappdev/archive/2012/05/24/being-productive-in-the-background-background-tasks.aspx#10318589

所以不,如果系统处于睡眠/休眠状态,可能会跳过 TimeTrigger。

可用条件可在此处找到:http://msdn.microsoft.com/en-US/library/windows/apps/windows.applicationmodel.background.systemconditiontype

我建议您创建两个后台任务(我对后台任务没有太多经验,所以我甚至不确定这有多大可能)。一个用于 TimeTrigger,另一个使用 UserPresent 条件运行。如果 TimeTrigger 成功运行,请将具有上次运行时间的标志或值存储在某处,当第二个任务即将运行时,请检查此标志/上次运行时间,然后根据需要中止或继续。

希望这有帮助。

我的建议是下载以下SDK示例:

http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

运行示例,使用 TimeTrigger 注册后台任务,并在任务设置为完成之前不久休眠计算机。然后,等待足够长的时间让任务计时器过期,并还原计算机(保持示例应用运行),并切换回示例应用,查看任务是否完成。

这应该告诉您任务是否会在恢复时执行。

最新更新