尽可能快地请求1000个网站C#

时间:2014-06-06 13:18:58

标签: c# httpwebrequest

我在这里问一个小问题。我需要制作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);

希望你能帮助我。谢谢:))

1 个答案:

答案 0 :(得分:0)

最好的方法是创建一个线程池,然后创建一个Web客户端字典。在4芯机器上35个左右的线程是好的。使用ConcurrentQueue并对其执行队列操作。然后为每个线程让它们处于while(true)循环中,在循环中线程中执行TryDequeue大约200 ms。