【问题标题】:webbrowser control just stops网络浏览器控制刚刚停止
【发布时间】:2013-03-29 18:19:36
【问题描述】:
        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 控件会停止并且不会转到下一页。没有任何例外,它只会停止,但肯定有另一个链接可以访问。我认为这与控件中的内部错误有关,但我到底是如何捕获它的。我的异常处理程序都没有捕获任何东西。输出控制台中没有任何内容。我已禁用脚本错误。

【问题讨论】:

  • 您是否尝试过在锁中使用嵌套的 ifs 而不是返回?可能是因为它从未到达锁结构的末尾而正在返回而不是解锁?
  • 我不认为这是问题所在:stackoverflow.com/questions/1359184/…

标签: c# webbrowser-control


【解决方案1】:

那个code-sn-p在哪里?如果您将它放在控件的事件处理程序中 - 您极有可能陷入死锁。因为 Web 浏览器控件可以(并且将触发)页面加载的各个阶段中的多个事件。

文档完成将针对页面上的每一帧触发。 (Stack OverFlow)

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

【讨论】:

  • 它实际上是在文档加载处理程序中。 lock 语句应该被翻译成 try finally 所以它不应该最终死锁
猜你喜欢
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多