7

当我让我的应用程序运行很长时间时,我注意到内存问题。我实际上得到了一个内存不足的异常。我试图找出问题所在,但我一无所知,直到我让它再次运行并且我注意到

我每次都在这条线上漏水html.LoadHtml(a_few_k_of_html);。我怀疑 HtmlAgilityPack 正在泄漏。我尝试将它包装在使用和调用 dispose 中,但它不存在。它不仅每次都发生在该行,而且我记得更改了一些区域以使用 HtmlAgilityPack 而不是使用正则表达式解析 html

如果不修改 HtmlAgilityPack 本身,我该如何处理这个内存问题?

4

2 回答 2

5

我有同样的问题。处理完文档后,我将文档的实例设置为空,然后设置为 GC.Collect()。问题解决了。

于 2012-05-17T14:26:40.627 回答
2

尝试使用HtmlAgilityPack.HtmlDocument Load()insted of using 的方法LoadHtml()

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
MemoryStream ms = new MemoryStream(Encoding.Default.GetBytes(a_few_k_of_html));
doc.Load(ms);
ms.Close();// <-- Important
//Do whatever you want with HtmlDocument
于 2016-04-16T13:02:18.360 回答