我似乎在WebClient.DownloadString上的C#中获得了StackOverflowException。我不知道我是怎么做到的,它目前让我有点生气,因为它在过去的三天里一直在发生。
基本上我所做的是一个网络浏览器,它循环遍历大量页面并从中提取数据,确切地说是链接。当遇到这段代码时,问题会随机发生:
try
{
derp = web.DownloadString(site + pageincr);
}
catch (Exception ex)
{
...
网站是一个可以抓取的网站,而pageincr正是它的页面。所以它获取数据,处理它,然后如果pageincr不大于最大页面集,它将增加pageincr然后再次启动该函数。但是在最随机的时刻,它会停止在上面的代码中,并出现错误'StackOverflowException'。令我感到奇怪的是,它发生在DownloadString函数上并且随机发生。如果它是真正的StackOverflow会不会立即停止代码?
如果有可能阻止这种情况,请告诉我。
修改 它似乎只是在这段代码上停止了它:
this.Invoke((Action)delegate
{
console.SelectionFont = new Font(console.Font, FontStyle.Bold);
appendConsole("\r\n===[ Page: " + pageincr + " ]===");
console.SelectionFont = new Font(console.Font, FontStyle.Regular);
});
用于StackOverflowException。这变得非常奇怪。