Estoy usando HtmlAgilityPack para analizar aproximadamente 200,000 documentos HTML.Solución temporal a StackOverflowException
No puedo predecir el contenido de estos documentos, sin embargo uno de esos documentos hace que mi aplicación falle con un StackOverflowException
. El documento contiene este código HTML:
<ol>
<li><li><li><li><li><li>...
</ol>
Hay aproximadamente 10.000 <li>
elementos anidados así. Debido a la forma en que HtmlAgilityPack analiza HTML causa un StackOverflowException
.
Lamentablemente, no se puede detectar una StackOverflowException en .NET 2.0 y posterior.
Me preguntaba si configurar un tamaño más grande para la pila de subprocesos, pero establecer un tamaño de pila más grande es un truco: mi programa usaría mucha más memoria (mi programa comienza unos 50 hilos para procesar HTML, todos estos hilos tendrían el mayor tamaño de pila) y tendrían que ajustarse manualmente si alguna vez se topa con una situación similar.
¿Hay alguna otra solución alternativa que pueda emplear?
realmente.A menos que tenga ganas de cambiarse a una biblioteca diferente, no veo una mejor manera que aumentar el tamaño de la pila. Tal vez hay una manera de establecer el tamaño de la pila solo para la (s) hebra (s) que lo necesitan. –