我想每8小时执行一次后台任务(更常见的是很好)。如果计算机在执行后台任务时关闭或休眠,它只是跳过那次迭代吗?
假设确实如此,我的下一个要求是在计算机退出休眠状态或打开电源时安排它。后者很简单;我可以为会话开始时安排系统触发的后台任务。但是当用户“取消休眠”计算机时,我不确定如何处理这种情况。对此有何建议? UserPresent触发器看起来很有希望,但我无法找到任何触发器的定义。
答案 0 :(得分:2)
所以不,如果系统处于休眠/休眠状态,可能会跳过TimeTrigger。
可在以下条件找到可用条件:http://msdn.microsoft.com/en-US/library/windows/apps/windows.applicationmodel.background.systemconditiontype
我建议您创建两个后台任务(我对后台任务没有多少经验,所以我甚至不确定这是多么可能)。一个用于TimeTrigger,另一个用于使用UserPresent条件运行。如果TimeTrigger成功运行,则存储上次运行时间的标志或值,当第二个任务即将运行时,检查此标志/上次运行时间,然后根据需要中止或继续。
希望这有帮助。
答案 1 :(得分:-1)
我的建议是下载以下SDK示例:
http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9
运行示例,使用TimeTrigger注册后台任务,并在任务设置完成之前不久暂停计算机。然后,等待任务计时器过期,并恢复计算机(保持示例应用程序运行),然后切换回示例应用程序并查看任务是否完成。
那应该告诉你这个任务是否会在恢复时执行。