c# - 为什么 RestSharp 将与同一服务器的并发连接限制为 2?
问题描述
我正在尝试并行运行多个线程,每个线程都启动自己的 RestSharp 客户端并全部连接到同一服务器以使用 RestSharp 的 DownloadData 方法将结果下载到文件中。
尽管所有线程都启动并并行调用客户端,但一次只有 2 个文件开始接收数据。当至少一个完成时,其他文件才会开始增长,每次在任何给定时间最多有 2 个受到影响。
解决方案
我发现使用 WebClient 可以对同一服务器进行默认最多 2 个同时连接(请参阅如何以编程方式删除 WebClient 中的 2 个连接限制)
我在那里找到的解决方案之一也可以与 RestSharp 一起使用,那就是设置System.Net.ServicePointManager.DefaultConnectionLimit
. 在下面的示例中,它设置为 10。只需确保在创建客户端之前设置了 DefualtConnectionLimit:
System.Net.ServicePointManager.DefaultConnectionLimit = 10;
var Client = new RestClient("https://someURL");
推荐阅读
- android - 在 UI Automator 中长按时如何检查 UI 对象
- assembly - 为什么 AL 每次都取值为零?
- android - 自定义 TextInputLayout - 内部 editText 为空
- python - 如何使我的网页抓取脚本更加健壮?
- ruby-on-rails - 在 rails 引擎中维护 schema.rb 并运行在引擎的 schema.rb 中更新的迁移
- java - 如何将值添加到范围内的位置以循环但跳过子范围?
- oracle - 带有通配符 (%) 的 LIKE 不适用于 4000char+ clob 列
- python - 在 linux 上使用 discord.py 我得到错误 'Bot' object has no attribute 'join_voice_channel'
- css - 多个多边形可能吗?
- amazon-redshift - 参数名称 系统视图中缺少信息 PG_PROC_INFO.proargnames 用于未命名的参数