首页 文章

UWP后台任务 - ExecutionTimeExceeded

提问于
浏览
0

我最近将我的LOB Win 8 RT App移植到了UWP . 我正在使用后台任务连接到Web服务和下载/上传数据 .

在低规格的Win 10平板电脑上,我有Win8应用程序和UWP应用程序 . Win8应用程序表现不错,但UWP应用程序将调用取消事件处理程序,并显示错误ExcecutionTimeExceeded . 在aprox 23秒后发生这种情况 . 它不下载所有数据(而在同一设备上的Win 8应用程序) .

但是,当我在笔记本电脑上运行应用程序(更高规格)时,后台任务在aprox 40-50秒后成功运行 .

“ExectionTimeExceeded”是否与设备的CPU相关? Win 8商店应用程序和UWP之间是否有所改变?

另外 - 我正在使用BackgroundTaskDeferral .

1 回答

  • 1

    “ExectionTimeExceeded”是否与设备的CPU相关?

    根据BackgroundTaskCancellationReason枚举, ExecutionTimeExceeded 它说:

    后台任务已取消,因为它超出了指定的运行时间 .

    在UWP中,后台任务确实有CPU约束,CPU需要保证10% . 更多限制,您可以参考this PPT的幻灯片22 . 但是对于 ExecutionTimeExceeded 取消原因,它应该由"wall clock quota"的约束引起 . 除了渴望触发(运行25秒和取消5秒)之外,后台任务限制为30秒的挂钟使用 . 因此,您的后台任务应该执行少于25秒,如果超过,任务将被取消并返回 ExecutionTimeExceeded 取消原因 .

    Win 8商店应用程序和UWP之间是否有所改变?

    可能是的 . 看起来在Windows 8.1中,所有后台任务都有CPU和网络使用配额,但没有挂钟配额限制 . 更多细节请参考this PPT的幻灯片21 .

    但是,当我在笔记本电脑上运行应用程序(更高规格)时,后台任务在aprox 40-50秒后成功运行 .

    为此,我不确定为什么这发生在你身边 . 也许您的笔记本电脑是Windows 8.1,或者您计算错误的执行时间或其他一些原因 . 但是我的上面提到的后台任务仅限于30秒,无论你的设备规格有多高 .

    更多细节请参考Support your app with background tasks .

相关问题