ASP.NET Web应用程序具有大量线程,最有效的方法

时间:2012-01-13 20:59:18

标签: asp.net multithreading

我有一个网络应用程序,允许您粘贴大量的网址(2000 - 15000之间),然后访问每个页面以下载源并进行一些处理。

我尝试了几种方法,目前它使用ajax将每个url一次发送到WebMethod,然后使用ThreadPool.QueueUserWorkItem将请求推送到队列并在可以执行处理时使多个线程正在同时运行。这似乎会导致问题(Visual Studio Web服务器偶尔会死掉,这可能不会很好)。

只是想知道是否有人做过类似事情,知道更好的方法。我想能够以某种方式限制并发线程的数量会有所帮助。

由于

2 个答案:

答案 0 :(得分:2)

请勿使用内置的网络服务器。使用IIS正确

答案 1 :(得分:1)

除了使用上面提到的IIS之外,您还可以从使用异步Web请求中受益。 (有关详细信息,请参阅How to use HttpWebRequest (.NET) asynchronously?。)

这样可以防止在每个线程上完成阻塞,这样可以减少处理过重所需的线程数。