我正在使用 HtmlAgilityPack 来解析大约 200,000 个 HTML 文档。
我无法预测这些文档的内容,但是一个这样的文档会导致我的应用程序失败并显示StackOverflowException
. 该文档包含以下 HTML:
<ol>
<li><li><li><li><li><li>...
</ol>
大约有 10,000 个<li>
这样嵌套的元素。由于 HtmlAgilityPack 解析 HTML 的方式,它会导致StackOverflowException
.
不幸的是,在 .NET 2.0 及更高版本中无法捕获 StackOverflowException。
我确实想知道为线程的堆栈设置更大的大小,但是设置更大的堆栈大小是一种技巧:它会导致我的程序使用更多的内存(我的程序启动了大约 50 个线程来处理 HTML,所以所有这些线程会增加堆栈大小)并且如果再次遇到类似情况则需要手动调整。
我可以采用其他任何解决方法吗?