1

在我的应用程序中,我只有一个 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
4

2 回答 2

1

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

于 2016-05-03T07:08:52.520 回答
0

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

于 2012-08-28T14:55:19.313 回答