另外我发现一个类似的问题here表示不可能,但有人必须想出一个办法.
编辑:
我要求这个任务的理由是这样的:
我的应用程序将会在长时间,几分钟到几个小时内看到和写入文件.在这段时间的大部分时间里,应用程序不可能在前台呈现.因为我需要代码才能继续执行,似乎最好的办法是创建一个后台任务,但是我无法在Visual Studio之外手动启动这个任务,尽管在Visual Studio中它完美无缺.如果有更合适的方式来处理这个执行,我愿意使用它.
由于OP的额外信息而修订.
我可以认为你可以通过地铁应用程序做到这一点的唯一方法是要求用户在桌面上“捕捉”您的应用程序 – 在您的快照应用程序上,他们可以启动/停止,并且只能同时使用桌面两个应用程序都在前台运行.
我认为我的另一个答案是不完整的,所以我会尝试提供一个更好的答案.
要澄清:您说明您使用后台任务的全部原因是,即使您的应用程式被暂停,您的应用程式仍会继续运行某些程式码.
背景任务:
您不能触发WinRT后台任务立即运行.
请记住,默认情况下,后台任务是每2小时1秒的cpu,并且无法指定何时激活 – 您只能使用机会主义触发 – 在这种情况下对您不利.
此外,即使您的应用程序是锁屏应用程序,您也不能指定后台任务的即时处理,除非您使用推送通知,这不适合您尝试执行的操作.对于锁屏应用,您通常每15分钟会得到2秒的cpu.
OnSuspending:
但是,如果您的应用程序被暂停,则您的应用程序在操作系统挂起之前,您仍然有几秒钟(5,根据这个:http://www.redlist.ch/post/Time-limit-on-suspending-a-WinRT-app.aspx)时间来整理.这个暂停优惠时间比你在后台任务中的时间要长!
因此,我建议不要使用后台任务,而是根据我的其他答案启动后台线程来执行按钮操作(使用本地状态记录其进度).现在,如果你还挂钩了应用程序的onsuspending事件,你可以使用它来查看按钮按动操作是否还没有完成.
希望是有道理的.祝你好运!