C# 尽可能快地重新查询1000个网站

C# 尽可能快地重新查询1000个网站,c#,httpwebrequest,C#,Httpwebrequest,我想问一个小问题。我需要在同一个模板上生成1000个HttpWebRequests,Idk我应该使用什么使它们尽可能快地运行。我还有一个proxylist,可以从中随机选择代理 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); randomIndex = Urls.rnd.Next(0, Proxies.proxies.Count() - 1);

我想问一个小问题。我需要在同一个模板上生成1000个HttpWebRequests,Idk我应该使用什么使它们尽可能快地运行。我还有一个proxylist,可以从中随机选择代理

            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);

希望你能帮我。谢谢:

您最好的方法是创建一个线程池,然后创建一个web客户端字典。在4核机器上,35个左右的线程是好的。使用ConcurrentQueue并对其执行队列操作。然后,对于每个线程,将它们放在whiletrue循环中,该循环在线程while循环中执行大约200 ms的TryDequeue睡眠。

为什么要这样做?乍一看,你的问题似乎是在试图创建某种恶意软件。请证明我错了。@Maritim,或者可能只是为了某种压力测试,不是任何类型的,你不会做任何事或任何有代理的事情,这是合法的,是为了教育目的,因为我需要按FIFO顺序使用它们。正如我说的,请证明我错了。你做到了!我会关注C语言中的异步任务,我不完全确定为什么您只限于FIFO,但也许您可以进一步澄清您的问题