WebBrowser控件使用过多的CPU和RAM

时间:2012-08-28 14:46:33

标签: vb.net timer browser

在我的应用程序中,我只有一个webbrowser和一些计时器,但是如果加载webbrowser,它会使用50%的CPU并且需要5分钟左右的120k RAM。我该怎么办?

我的代码:

Public Sub work()
    WebBrowser1.Navigate("Site")
    tim.Start()
End Sub

Public Sub work2()
    WebBrowser1.Document.GetElementFromPoint(point).InvokeMember("click")
    tim2.Start()
    tim.Stop()
End Sub

Dim point As New Point(800, 30)
Dim WithEvents tim As New Timer
Dim WithEvents tim2 As New Timer

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    tim.Interval = 6000
    tim2.Interval = 6000
    work()
End Sub

Private Sub tim_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim.Tick
    work2()
End Sub

Private Sub tim2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tim2.Tick
    work()
End Sub

2 个答案:

答案 0 :(得分:1)

很久以前,问过这个问题,但是当我写这篇文章时,我一直致力于自己的项目,从Vb.net创建一个YouTube应用程序,几个星期以来我一直在试图找出原因在处理和播放视频时,IE Wrapper Web Control占用了我很多CPU,而且由于我的问题没有找到任何好的帮助解决了什么,我最终研究得足够,并找到了我的问题的解决方案,这是使用我为我的程序添加的功能注册表项目在程序启动时根据需要进行检查和添加,我找到的两个有很多帮助的是FEATURE_BROWSER_EMULATION和FEATURE_GPU_RENDERING,默认情况下我相信并且可能是错误的,vb。 net wrapper使用IE7,但是如果你把它改成你程序的最新版本,它会使它更安全并提高性能,你可以用你的程序名称的DWORD子键1来打开gpu渲染会使gpu处理一些工作量也大大提高了速度。使用这些使得webcontrol从视频中利用大约70-80%的CPU到低3%和高20%的CPU利用率,有利于将来参考,还可以在这里了解有关注册表功能的更多信息https://msdn.microsoft.com/en-us/library/ee330733(v=vs.85).aspx

答案 1 :(得分:0)

如果控件中加载了一些重型网页,则120k听起来非常合理。例如。如果你以一种mht格式(完整存档)从IE中保存microsoft.com的主页面,它几乎是1MB大。处理器的使用很可能取决于点击处理程序的作用 - 是否有任何重的脚本附加到元素?