the*_*dev 5 c# windows-phone windows-phone-8.1 background-task
我的后台任务需要很长时间才能完成,操作系统正在扼杀它.我正在尝试在线同步我的联系人,这是我正在做的事情:
从电话簿获取所有联系人(需要约1秒)
将它们上传到服务器(约2秒)
从服务器检索所有联系人(~2-3秒)
从ContactStore中删除所有联系人(ContactStore.DeleteAsync有时需要1分钟才能完成)
创建一个ContactStore并导入所有联系人)(1000个联系人约1-2分钟)
我有~100个联系人并且它运行良好,但我想测试~1000个联系人,并且每次都没有完成.我正在使用MaintenanceTrigger,但我认为它对于后台任务来说仍然太多了,但我需要对此进行确认.应该允许MaintenanceTrigger任务执行更多资源密集型任务,那么为什么操作系统会终止我的后台任务呢?
看一下这个链接:https://msdn.microsoft.com/en-us/library/windows/apps/hh202942 (v=vs.105).aspx
资源密集型任务的持续时间限制为 10 分钟。
在任务开始之前必须满足以下约束。如果设备停止满足这些约束,代理将立即终止。
除此之外,低端/高端设备的内存上限分别为 11mb 和 20mb。
根据您上面的描述,IMO 最有可能的情况是内存上限受到影响。也许这篇文章可以帮助您了解后台任务的内存使用情况:如何在 C# 中获取可用或已使用的内存
从 Windows Phone 8.1 开始,内存限制的主要变化包括(可在此处找到):