DownloadString(And Invoke)上的StackOverflowException

时间:2012-10-15 02:55:17

标签: c# stack-overflow

我似乎在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。这变得非常奇怪。

0 个答案:

没有答案