如何在我的uwp应用程序被暂停时运行长时间运行的任务?

时间:2017-03-07 23:27:27

标签: c# windows background uwp suspend

我有一个UWP应用程序,它执行一些长时间运行的任务最多1或2个小时。当我最小化我的UWP应用程序时,我的应用程序的状态变为Suspended,我的长时间运行任务也被暂停。我想知道在我的UWP应用程序被暂停时是否可以让我的长期任务完成其工作。我希望这项工作适用于台式机,平板电脑和笔记本电脑。

this post看,使用ExtendedExecutionSession只能在不超过10分钟的情况下运行任务,如果桌面没有墙上电源的话;对于平板电脑或笔记本电脑,只要屏幕打开,它就可以运行,直到电池。

我还研究了后台任务或后台转移 - 似乎背景任务不支持我的工作;和后台传输仅支持文件传输。

我现在唯一能看到的选项是win32应用程序,我可以将其作为我的uwp应用程序的一部分。我可以启动win32应用程序的进程,通过app服务连接将信息从uwp传递到此win32,然后当我的uwp应用程序被暂停时,我的win32应用程序可以继续处理长时间运行的任务。在我的长时间运行任务完成后,我可以激活我的uwp应用程序以恢复。

我还有其他选择吗?当我的uwp被暂停时,使用win32进程运行我的长时间运行任务有什么不对吗?我有实验代码将它们打包在一个appx中,uwp可以启动win32进程,并且它们可以相互通信。欢迎提出任何意见或建议!

1 个答案:

答案 0 :(得分:0)

如果您正在编写供个人使用/侧面加载的UWP应用,而不是应用商店。.此MSDN链接回答了您的问题。

通过该链接: “如果开发的应用程序不打算提交到Microsoft Store,则可以将ExtendedExecutionForegroundSession与extendedExecutionUnconstrained受限功能一起使用,以便使应用程序可以在最小化的情况下继续运行,而与设备的能量状态无关。 “