Windows 8时间触发后台任务

时间:2012-10-09 22:34:08

标签: windows-8 microsoft-metro windows-runtime

我想每8小时执​​行一次后台任务(更常见的是很好)。如果计算机在执行后台任务时关闭或休眠,它只是跳过那次迭代吗?

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

2 个答案:

答案 0 :(得分:2)

请参阅此评论: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成功运行,则存储上次运行时间的标志或值,当第二个任务即将运行时,检查此标志/上次运行时间,然后根据需要中止或继续。

希望这有帮助。

答案 1 :(得分:-1)

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

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

运行示例,使用TimeTrigger注册后台任务,并在任务设置完成之前不久暂停计算机。然后,等待任务计时器过期,并恢复计算机(保持示例应用程序运行),然后切换回示例应用程序并查看任务是否完成。

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