0
        lock (lockVar)
        {

            if (done)
                return;

            if (linksvisited.Contains(webBrowser1.Url.OriginalString))
                return;

            System.Console.WriteLine("Locked: " + webBrowser1.Url.OriginalString);

            linksvisited.Add(webBrowser1.Url.OriginalString);
        }
            webBrowser1.Navigate(nextLink, null, null, "User-Agent: Googlebot/2.1 (+http://www.google.com/bot.html)");

我正在使用以下代码遍历页面,但有时 webbrowser 控件会停止并且不会转到下一页。没有任何例外,它只会停止,但肯定有另一个链接可以访问。我认为这与控件中的内部错误有关,但我到底是如何捕获它的。我的异常处理程序都没有捕获任何东西。输出控制台中没有任何内容。我已禁用脚本错误。

4

1 回答 1

0

该代码段位于何处?如果您将它放在控件的事件处理程序中 - 您极有可能陷入死锁。由于 Web 浏览器控件可以(并且将触发)页面加载的各个阶段期间的多个事件。

文档完成将针对页面上的每一帧触发。(堆栈溢出

对不完整的代码部分进行评论也很困难。在继续深入之前,我会阅读(Locking )以了解内在函数。祝你目前的努力好运。

于 2013-04-07T18:31:41.947 回答