UWP后台任务 - ExecutionTimeExceeded

时间:2017-06-08 12:23:06

标签: uwp

我最近将我的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 个答案:

答案 0 :(得分:1)

  

" ExectionTimeExceeded"与设备的CPU有关吗?

根据Background​Task​Cancellation​Reason枚举,ExecutionTimeExceeded表示:

  

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

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

  

Win 8 Store Apps和UWP之间是否有变化?

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

  

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

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

更多详情请参阅Support your app with background tasks