WebClient构建开销
我有一个客户端,它可以生成有限数量的并发Web请求。 我为此目的使用WebClient。 我目前有一个WebClient-s池,我创建一次并使用任何一个空闲的。
这种方法虽然变得有点麻烦,但我想知道预先构建的WebClient实例集合是否有任何好处,或者是否在运行中创建它们不会太麻烦?
为什么你首先会有一个WebClient池? 它们是微小的廉价物品。 您是否通过测量确定这是必要且有益的? 我猜不是吗?
对象实例化几乎总是便宜的。 HTTP连接也不贵。 WebClient池是过早优化。 没有必要 – 随意创建任意多个。
根据Reflector所有,WebClient的构造函数都是这样的:
public WebClient() { this.m_Encoding = Encoding.Default; this.m_ContentLength = -1L; }
所以没有你没有太多的好处,有一个游泳池。
如果您使用的是.NET 4.0,则可以并行化Web请求。 看看这个 。
但是对于真正的问题,如果不需要在其他地方重用该实例,我就不会将WebClient的实例存储在数组中。 根据目的和使用类型,您还可以使用带字符串字典的请求池。
然后只需重新使用WebClient而不是多个实例。