0

我正在选项卡内构建多个网络浏览器(每个选项卡有 1 个预定义网络浏览器控件),我希望它们全部同时加载,否则必须在线程中运行。不幸的是,我觉得一个有效的事实来自错误消息,这是不可能的。请帮助我检查下面的简单程序代码及其错误,以防我尝试发布 2 个 Web 浏览器控件,但是当我将其留给单个 Web 浏览器控件时,它工作正常。任何解决方法?

Imports System.Threading

Public Class Form1
Dim mythread1 As Thread
Dim mythread2 As Thread

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
mythread1 = New Thread(AddressOf mysub1)
mythread2 = New Thread(AddressOf mysub2)
mythread1.IsBackground = True
mythread2.IsBackground = True
mythread1.Start()
mythread2.Start()
End Sub

Public Sub mysub1()
Dim HTML As String
WebBrowser1.Navigate("about:blank")
mythread1.Abort()
End Sub
Public Sub mysub2()
WebBrowser2.Navigate("about:blank")
mythread2.Abort()
End Sub
4

2 回答 2

1

以下 msdn 文章:“控件上有四种方法可以线程安全调用:Invoke、BeginInvoke、EndInvoke 和 CreateGraphics 以及 InvokeRequired 属性”

您不能从另一个线程直接调用 WebBrowser1.Navigate

遵循如何:对 Windows 窗体控件进行线程安全调用

于 2010-05-03T14:11:45.510 回答
0

默认情况下,Web 浏览器是异步的,因此您不需要将它们线程化,因为它们将按顺序运行。

如果它的速度你之后可能会切换到 webclient 或 httpwebrequest。您无需下载图像即可运行,并且可以对它们进行多线程处理。

于 2012-01-11T17:34:55.327 回答