Tyl*_*ler 3 windows-phone-7 windows-phone-7.1
这是一个2部分问题
1)在WP7中是否可以同时运行最大数量的HttpWebRequests?
我将创建一个ScheduledTaskAgent来运行PeriodicTask.将有2个不同的REST服务调用,第一个将获取需要下载的记录的ID列表,第二个服务将用于一次下载一个记录.我不知道有多少记录会有我的guestimage + -50.
2.)将所有单独的记录请求立刻变成一个坏主意吗?(假设它可能)或者我应该在开始另一个之前等待请求完成?
刚刚花了一个半星期的时间让BackgroundAgent保持在内存限制之内,我建议你一次做一个.
您丢失了大约一半的内存到系统库等,您的第一个Web请求将占用近20%,但似乎在后续请求中重用该内存.
如果您需要将结果存储到本地数据库中,那么它将会占用更多优势.我发现CompiledQuery使用更少的内存,这意味着保持上下文的单个实例.
在每个电话之间GC.Collect(),我建议做一个,我甚至添加一个短片Thread.Sleep(),以确保该过程有一些时间来整理.
我做的另一件事是跟踪我正在使用多少内存,并在达到97或98%时尝试优雅地退出.
您无法使用调试器来测试内存限制,因为调试内存要高得多,并且不会强制执行限制.但是,对于代码版本之间的比较测试,调试器在后续运行相同代码时会产生非常相似的结果.
您可以使用Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsage和跟踪内存使用情况Microsoft.Phone.Info.DeviceStatus.ApplicationMemoryUsageLimit
我写了一个状态日志,IsolatedStorage所以我可以看到手机上的运行结果并ScheduledActionService.LaunchForTest()用来启动它.然后我使用ShellToast通知让我知道任务运行的时间以及完成时,这样我就可以启动我的应用程序来读取状态日志而不会中断它.
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |