【问题标题】:Using (multiple) WebClient objects best practices使用(多个)WebClient 对象的最佳实践
【发布时间】:2013-06-17 06:20:15
【问题描述】:

在内存消耗方面,使用(多个)WebClient 的最佳做法是什么?在我读过的互联网上的所有资源中,webClient 对象永远不会手动发布,因此我的问题是它什么时候发布?

如果我使用多个 webclient 对象从 Internet 获取异步数据怎么办 - 它们可能并行运行,也可能不并行运行?

【问题讨论】:

    标签: c# windows-phone webclient


    【解决方案1】:

    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 对象,我不确定会使用多少内存,因为我从未尝试过分析或关注这些情况下的内存消耗。

    另外,如果速度不是问题,我会使用列表或队列,这样您就可以在请求完成后立即处理一个接一个的请求,以防止高内存消耗。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-23
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 2011-12-27
      • 2021-07-25
      相关资源
      最近更新 更多