windows-phone-7 - WP7 最大 HTTPWebRequests

标签 windows-phone-7 windows-phone-7.1

这是一个由两部分组成的问题

1) 在 WP7 中是否有可以同时运行的 HttpWebRequests 的最大数量?

我将创建一个 ScheduledTaskAgent 来运行 PeriodicTask。将有 2 个不同的 REST 服务调用,第一个将获取需要下载的记录的 ID 列表,第二个服务将用于一次下载这些记录。我不知道会有多少条记录我的客人形象会是+-50。

2.) 一次提出所有个人记录请求是不是一个坏主意? (假设可能)还是我应该等待一个请求完成再开始另一个请求?

最佳答案

我刚刚花了一个半星期的时间让 BackgroundAgent 保持在它的内存限制内,我建议一次做一个。

您将大约一半的内存丢失给系统库等,您的第一个 Web 请求将再占用近 20%,但它似乎会在后续请求中重用该内存。
如果您需要将结果存储到本地数据库中,则需要花费更多的时间。我发现 CompiledQuery 使用的内存更少,这意味着只保留上下文的单个实例。

我建议在每次调用之间执行一次 GC.Collect(),我什至添加一个简短的 Thread.Sleep() 只是为了确保进程有一些时间收拾东西。
我做的另一件事是跟踪我使用了多少内存,并在我达到大约 97% 或 98% 时尝试正常退出。

您不能使用调试器来测试内存限制,因为调试内存要高得多并且不会强制执行限制。但是,对于代码版本之间的比较测试,调试器确实会在后续运行相同代码时产生非常相似的结果。

您可以使用 Microsoft.Phone.Info.DeviceStatus.ApplicationCurrentMemoryUsageMicrosoft.Phone.Info.DeviceStatus.ApplicationMemoryUsageLimit 跟踪您的内存使用情况

我将状态日志写入 IsolatedStorage,这样我就可以在手机上看到运行结果并使用 ScheduledActionService.LaunchForTest() 启动。然后我使用 ShellToast 通知让我知道任务何时运行以及何时完成,这样我就可以启动我的应用程序来读取状态日志而不会中断它。

关于windows-phone-7 - WP7 最大 HTTPWebRequests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7001369/

相关文章:

windows-phone-7 - 从 Windows Phone 7.1/7.5 应用程序中检测和启动外部应用程序

silverlight - 在 Windows Phone 中调用电话

android - WhatsApp - 编写克隆(iphone、android、wp7)

json - 如何将数据绑定(bind)到 Xaml、Windows Phone?

xaml - 使用静态内容样式化列表框

windows-phone-7 - 如何在后台音频播放器不暂停的情况下重复单个声音?

c# - 如何在不打开套接字的情况下访问 Windows Phone 7 特定网络类型(例如 EDGE、3G 等)?

windows-phone-7.1 - 如何使用Expensify WP7处理MessageBox?

multithreading - WP7-在停用或关闭应用程序时无法正常退出bg线程时遇到麻烦

c# - WP7 中的未处理异常