plinq可以指定最大线程数吗?

phommy 2014-08-19 05:39:00
场景:我有一堆网址放在数组urls里,我要从网上把这些网址的内容读出来写到本地
代码是这么写的:

urls.AsParallel().Select(getHtmlContentByUrl).ForAll(writeHtmlContent);

我用fiddler跟踪发现实际执行时永远只有4个web请求在同时跑,完了一个才执行下一个,也就是只能4个线程并发,也许是微软本意因为cpu核数原因?但我这个场景里,cpu负担很小主要是io,我想让更多的线程一起访问网络,有没有办法增加plinq的线程数呢?
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Forty2 2014-08-19
  • 打赏
  • 举报
回复

System.Net.ServicePointManager.DefaultConnectionLimit = 16;
urls.AsParallel()
      .WithDegreeOfParallelism(16)
      .WithExecutionMode(ParallelExecutionMode.ForceParallelism)
      .Select(getHtmlContentByUrl).ForAll(writeHtmlContent);

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧