以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  连续获取网页代码后狐表程序闪退  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184127)

--  作者:lxhmax
--  发布时间:2022/11/24 16:00:00
--  连续获取网页代码后狐表程序闪退
老师,下面这段代码运行几次之后,狐表的内存就越来越高,连续执行10次左右的时候程序就会闪退,有没办法每执行一次就清理一下内存?

Dim w As New System.Windows.Forms.WebBrowser
w.ScriptErrorsSuppressed = True
w.Navigate("https://bj.ke.com/ershoufang/101116442271.html")
Do Until w.ReadyState = 4
    Application.DoEvents
Loop
Output.Show(w.DocumentText)

图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/11/24 16:13:00
--  
最后加上下面代码试试

GC.Collect()

--  作者:lxhmax
--  发布时间:2022/11/24 16:26:00
--  
老师,这句代码是什么意思?似乎有一点点效果,不过内存还是一样一直在增加,还有其他办法处理吗?
--  作者:有点蓝
--  发布时间:2022/11/24 16:34:00
--  
这句代码用来回收垃圾。估计您不止是这句代码的问题,比如获取数据后填充到表格里,表格数据也会占用很多内存的。

不要使用内部表填充数据,然后可以先把上一次填充的数据清空,再填充下一次的数据,比如
DataTables("订单").LoadFilter = "[_identify] is null"
DataTables(
"订单").Load

--  作者:lxhmax
--  发布时间:2022/11/24 16:36:00
--  
没有执行其他的代码的,就是在命令窗口直接执行上面的那段代码
--  作者:有点蓝
--  发布时间:2022/11/24 16:41:00
--  
考虑把w.DocumentText保存到文件文件里,不要显示在命令窗口
--  作者:lxhmax
--  发布时间:2022/11/24 16:43:00
--  
这句话我注释掉了,没有在命令窗口输出任何内容
--  作者:有点蓝
--  发布时间:2022/11/24 16:52:00
--  
试试,不行就没有办法了

Dim w As New System.Windows.Forms.WebBrowser
w.ScriptErrorsSuppressed = True
w.Navigate("https://bj.ke.com/ershoufang/101116442271.html")
Do Until w.ReadyState = 4
    Application.DoEvents
Loop
w.Dispose(true)
GC.Collect()

--  作者:lxhmax
--  发布时间:2022/11/24 17:03:00
--  
老师,弹出这个提示怎么处理?
图片点击可在新窗口打开查看
--  作者:有点蓝
--  发布时间:2022/11/24 17:16:00
--  
w.Dispose()