【问题标题】:VB.NET - Using WebBrowser1 After WebBrowser1.Dispose()VB.NET - 在 WebBrowser1.Dispose() 之后使用 WebBrowser1
【发布时间】:2016-10-24 05:17:32
【问题描述】:

我在使用 Web Browser Control 时遇到了一些问题,我的程序继续向下滚动页面,永远抓取数据.. 或者直到我收到 OutOfMemoryException,即使我还有足够的 RAM。

在滚动了这么多之后,我在想,我应该处理掉 Web 浏览器,然后“重新创建”,或者再次“重用”,释放它之前使用的所有内存。

当我试图通过WebBrowser1.Dispose()处理它时

然后我无法再使用 WebBrowser1.Navigate(URL) 进行导航

我将如何使用它,或者在处理它之后重新创建 WebBrowser1。

任何帮助都会大有帮助,谢谢。

【问题讨论】:

  • 请向我们展示您尝试过的代码或部分代码。
  • 我的整个代码超过 3000 行,它只是在 10 秒左右一遍又一遍地阅读 WebBrowser1 文档 HTML 的一致性,同时向下滚动页面.. 长时间滚动后我得到一个 OutOfMemoryException,我的研究指出我要释放这么久后使用的内存,这是有道理的,但是当我调用 WebBrowser1.Dispose 时,我就不能再使用它了。
  • 没有看到代码它有点困难出了什么问题。无论如何,我的建议是将网络响应的结果保存在 txt 文件中并尝试分析响应长度。编辑器上显示的数据字符数。我的意思是为什么你需要向下滚动。
  • 你正在释放控件的内存,当然之后你将无法自动使用它。为此,您必须在释放后实例化它的新实例。至于您的内存问题,您可以将您的应用程序设为 64 位应用程序或 see this comment from Hans Passant
  • 我的程序在崩溃之前使用了大约 800MB,并在使用许多函数之一读取其文档时指向 WebBrowser1,并出现 OutOfMemoryException。我的程序向下滚动 Facebook 新闻源,从每个广告中抓取数据。经过一段时间的抓取,大约 200 条内容之后,它崩溃了。

标签: vb.net


【解决方案1】:

使用前先试试WebBrowser1.Navigate(URL)

WebBrowser1 = New WebBrowser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多