我在这里问一个小问题。我需要制作1000个HttpWebRequests,所有这些都在同一个模板上,Idk应该用什么来让它们尽可能快地运行。我还有一个代理列表,我从中随机选择代理。
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
randomIndex = Urls.rnd.Next(0, Proxies.proxies.Count() - 1);
string proxy = Proxies.proxies[randomIndex];
WebProxy myProxy = new WebProxy(proxy);
request.Proxy = myProxy;
request.Method = "HEAD";
request.KeepAlive = true;
WebResponse response = request.GetResponse();
response.Close();
response = null;
request = null;
myProxy = null;
proxy = null;
randomIndex = 0;
GC.SuppressFinalize(this);
希望你能帮助我。谢谢:))
答案 0 :(得分:0)
最好的方法是创建一个线程池,然后创建一个Web客户端字典。在4芯机器上35个左右的线程是好的。使用ConcurrentQueue并对其执行队列操作。然后为每个线程让它们处于while(true)循环中,在循环中线程中执行TryDequeue大约200 ms。