【发布时间】:2013-06-17 06:20:15
【问题描述】:
在内存消耗方面,使用(多个)WebClient 的最佳做法是什么?在我读过的互联网上的所有资源中,webClient 对象永远不会手动发布,因此我的问题是它什么时候发布?
如果我使用多个 webclient 对象从 Internet 获取异步数据怎么办 - 它们可能并行运行,也可能不并行运行?
【问题讨论】:
标签: c# windows-phone webclient
在内存消耗方面,使用(多个)WebClient 的最佳做法是什么?在我读过的互联网上的所有资源中,webClient 对象永远不会手动发布,因此我的问题是它什么时候发布?
如果我使用多个 webclient 对象从 Internet 获取异步数据怎么办 - 它们可能并行运行,也可能不并行运行?
【问题讨论】:
标签: c# windows-phone webclient
WebClient 实现了 IDisposable 接口,但实际上并未使用。它继承自 Component 类,该类需要在“事件”字段/变量中注册 Dispose 处理程序(您可以使用 Reflector/ILSpy/dotPeek/etc 进行检查),因此垃圾收集器可能会在必要时自动释放它。您可能想在这里阅读一些关于它的信息: .NET: Do I need to keep a reference to WebClient while downloading asynchronously? 和这里:C# WebClient Memory Usage
至于使用多个 WebClient 对象,我不确定会使用多少内存,因为我从未尝试过分析或关注这些情况下的内存消耗。
另外,如果速度不是问题,我会使用列表或队列,这样您就可以在请求完成后立即处理一个接一个的请求,以防止高内存消耗。
【讨论】: