C#许多URL请求,需要很长时间进行处理

时间:2012-11-10 15:16:17

标签: c# string multithreading httpwebrequest

我必须向以下网址发送大约120个网址请求

HttpWebRequest r = (HttpWebRequest)WebRequest.Create("https://play.google.com/store/search?q=" + keyword + "&c=apps&hl=en");

如果每个请求中的关键字不同,我会在响应中获取页面,处理页面并从响应页面中提取应用程序计数,其中包括字符串操作。但处理这120个请求需要花费超过一分钟的时间。

我正在考虑多线程,但同时,你能否建议一些更有效的东西,所以我把时间减少到最多1-2秒。

2 个答案:

答案 0 :(得分:0)

您不太可能将处理时间缩短到1-2秒。当然,你可以通过优化在这里和那里减少一些时间,它的一部分将是硬件和互联网连接限制。

除了拥有多核处理器并使用大量线程外,时间不会减少那么多。多线程可能是你最好的选择,但你不会以这种方式获得300-600%的性能提升。

答案 1 :(得分:0)

通过调用GetResponseAsync而不是GetResponse异步进行调用。这允许您同时发送多个请求。但请记住,可以同时处理的请求数量有限。因此,您只能获得有限的速度提升,但值得尝试。

处理请求的结果只占总时间的一小部分。很大一部分是由通信消耗的,因此使用多线程处理结果将无济于事。