后续应用程序启动时终止后台任务

时间:2012-06-24 08:05:38

标签: windows-8 windows-runtime

我正在玩the Background Task code sample (c#) from MSDN。我稍微修改了代码以使其运行更长时间,以便我可以看到应用程序是否可以在下次启动时“重新附加”到后台任务。我的测试表明,当应用程序第二次启动时,后台任务总是会终止。这是测试细节:

后台任务由类型为SystemTrigger的{​​{1}}触发,如果符合以下条件,它会按预期运行:

  1. 我首先启动应用程序然后更改我的TimeZone设置;
  2. 我首先更改我的TimeZone然后启动应用程序;
  3. 但是,如果我关闭应用程序(通过ALT + F4),然后在后台任务完成之前再次启动它。我将始终看到后台任务已终止。有时我会在“输出”窗口中看到“SystemTriggerType.TimeZoneChange”之类的消息。

    为什么每次再次启动应用程序时后台任务都会终止?这是设计吗?或者我在这里遗漏了什么?

2 个答案:

答案 0 :(得分:2)

这是项目参考问题。

  

如果在运行backgrond任务时退出程序code 1 (0x1),则应将后台任务项目添加到原始项目的引用中。

[Windows 8] The crash problem about BackgroundTask向您展示如何解决参考问题。

答案 1 :(得分:1)

如果您在C#中创建BackgroundTask,并使用Windows 8 RP,我认为您可能必须将项目的输出类型设置为WinMD文件而不是类库。您使用WinMD作为输出类型吗?