默认windows并发数是2,所以可以设置此数大一点
ServicePointManager.DefaultConnectionLimit = 20;
也可以使用abort释放http连接
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp47 { class Program { static void Main(string[] args) { ServicePointManager.DefaultConnectionLimit = 2; var ts = DateTime.Now; for (int i = 0; i < 100; i++) { try { var tm = DateTime.Now; var cmd = "http://baidu.com"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(cmd); request.Method = "GET"; request.Accept = "Application/json"; request.ContentType = "application/json;charset=utf-8"; var response = (int)((HttpWebResponse)request.GetResponse()).StatusCode; request.Abort(); var res = response == 200 ? 0 : response; Console.WriteLine((DateTime.Now - tm).TotalMilliseconds + " " + res); //Thread.Sleep(50); } catch (Exception ex) { try { var tm = DateTime.Now; var cmd = "http://baidu.com"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(cmd); request.Method = "GET"; request.Accept = "Application/json"; request.ContentType = "application/json;charset=utf-8"; var response = (int)((HttpWebResponse)request.GetResponse()).StatusCode; request.Abort(); var res = response == 200 ? 0 : response; Console.WriteLine((DateTime.Now - tm).TotalMilliseconds +" "+i+ " " + res); // Thread.Sleep(50); } catch (Exception e) { throw; } Console.WriteLine("************************" + i + ex.Message); } } Console.WriteLine((DateTime.Now - ts).TotalMilliseconds + " 结束"); Console.Read(); } } }