SHDocVw.InternetExplorerClass和webBrowser缓存

假装很屌 2011-12-08 11:05:50
InternetExplorerClass类可以获取网页的HTMLDocument,我写了一个方法getHTML(string url)

for(很多url)
{
getHTML(url);
//存到数据库。
}

执行过程会生成一个iexplore.exe进程,随着getHTML()执行的次数的增加,iexplore.exe占用的内存也越来越大。这个缓存达到一定的大小之后,getHTML(url)就不能解析网页获取HTML了。 像一边执行getHTML()一边清理缓存。求高手指点
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
假装很屌 2011-12-10
  • 打赏
  • 举报
回复
对于WebBrowser来说,这样是只能回收到一些垃圾, 释放出一小部分内存。

分还是送你, 谢谢。
孟子E章 2011-12-08
  • 打赏
  • 举报
回复
你需要
设置对象 = null
System.Runtime.InteropServices.Marshal.ReleaseComObject(对象);
GC.Collect();
GC.WaitForPendingFinalizers();
假装很屌 2011-12-08
  • 打赏
  • 举报
回复
如果页面内容是由JS加载进来的 WebCLient或者HttpWebRequest就获取不到我像要的HTML。只能用IE控制器和webBrowser
孟子E章 2011-12-08
  • 打赏
  • 举报
回复
getHTML 你可以使用WebCLient或者HttpWebRequest,没有必要使用InternetExplorerClass啊
InternetExplorerClass一般使用在客户端

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧