我有一个网络应用程序,允许您粘贴大量的网址(2000 - 15000之间),然后访问每个页面以下载源并进行一些处理。
我尝试了几种方法,目前它使用ajax将每个url一次发送到WebMethod,然后使用ThreadPool.QueueUserWorkItem将请求推送到队列并在可以执行处理时使多个线程正在同时运行。这似乎会导致问题(Visual Studio Web服务器偶尔会死掉,这可能不会很好)。
只是想知道是否有人做过类似事情,知道更好的方法。我想能够以某种方式限制并发线程的数量会有所帮助。
由于
答案 0 :(得分:2)
请勿使用内置的网络服务器。使用IIS正确
答案 1 :(得分:1)
除了使用上面提到的IIS之外,您还可以从使用异步Web请求中受益。 (有关详细信息,请参阅How to use HttpWebRequest (.NET) asynchronously?。)
这样可以防止在每个线程上完成阻塞,这样可以减少处理过重所需的线程数。