我正在玩the Background Task code sample (c#) from MSDN。我稍微修改了代码以使其运行更长时间,以便我可以看到应用程序下次启动时是否可以“重新连接”到后台任务。我的测试显示,后台任务总是在应用程序第二次启动时终止。下面是测试细节:后台任务将在下次启动时终止
后台任务是通过触发型SystemTriggerType.TimeZoneChange
的SystemTrigger
,和它的作品如预期,如果:
- 我第一次启动该应用程序,然后改变我区设置;
- 我首先更改我的时区,然后启动应用程序;
但是,如果我关闭应用程序(通过ALT + F4),然后在后台任务完成之前再次启动它。我会一直看到后台任务被终止。有时我会在“输出”窗口中看到类似“The program '[920] backgroundTaskHost.exe: Managed (v4.0.30319)' has exited with code 1 (0x1).
”的消息。
为什么每次应用程序再次启动时都会终止后台任务?这是设计吗?或者我在这里错过了什么?
是的,我做到了。我猜如果我不这样做的话,它无论如何都不会起作用。 –
因为我在上面的答案中遇到了一些问题,所以我想补充一点,您必须创建Windows运行时组件。 –
@SzymonSasin:当我还在使用W8 PREVIEW的'以前的'版本时,我很早就问过这个问题。现在W8 RTM是可用的,但我没有尝试过新的操作系统版本。不知道问题是否仍然存在......但是,由于'您必须创建Windows运行时组件',您是不是说我需要为后台任务创建Windows运行时组件?但是,这不是MSDN默认的例子吗? –