HtmlAgilityPack을 사용하여 약 200,000 개의 HTML 문서를 구문 분석하고 있습니다.해결 방법 StackOverflowException
이러한 문서의 내용을 예측할 수는 없지만 이러한 문서 중 하나는 StackOverflowException
으로 인해 내 응용 프로그램이 실패하게됩니다. 문서는이 HTML이 포함
<ol>
<li><li><li><li><li><li>...
</ol>
처럼 중첩 된 약 10,000 <li>
요소가 있습니다. HtmlAgilityPack이 HTML을 구문 분석하는 방식으로 인해 StackOverflowException
이 발생합니다.
불행히도 StackOverflowException은 .NET 2.0 이상에서는 catch 할 수 없습니다.
스레드 스택의 크기를 더 크게 설정하는 것에 대해 궁금해했으나 스택 크기를 더 크게 설정하면 해킹이 발생합니다. 내 프로그램이 더 많은 메모리를 사용하게됩니다 (내 프로그램은 HTML 처리를 위해 약 50 개의 스레드를 시작하므로 이 모든 쓰레드는 스택 크기가 증가 할 것입니다.) 비슷한 상황을 다시 한번 경험할 수 있다면 수동으로 조정할 필요가 있습니다.
내가 사용할 수있는 다른 해결 방법이 있습니까?
하지 않습니다.다른 라이브러리로 전환한다고 생각하지 않는 한, 스택 크기를 늘리는 것보다 나은 방법은 없습니다. 아마도 스레드를 필요로하는 스레드에 대해서만 스택 크기를 설정하는 방법이 있을까요? –