首页 > 解决方案 > vb.net - 如何在多线程下获取 webbrowser InnerHtml

问题描述

SetApartmentState在浏览器中使用:

Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    Dim th As System.Threading.Thread = New Threading.Thread(AddressOf Task_A)
    th.SetApartmentState(ApartmentState.STA)
    th.Start()        
End Sub

Public Sub Task_A()
    Dim frmBuild = New NewForm() 
    Dim WebBrowser1 = New WebBrowser()
    Application.Run(frmBuild)
    frmBuild.Controls.Add(WebBrowser1)
    WebBrowser1.CreateControl()
End Sub

Private Delegate Function GetInnerHTMLCallBack() As String        
Private Function GetInnerHTML() As String
    If WebBrowser1.InvokeRequired Then
        Return CStr(WebBrowser1.Invoke(New GetInnerHTMLCallBack(AddressOf GetInnerHTML)))
    Else
        Return WebBrowser1.Document.Body.InnerHtml
    End If
End Function

Dim innerHTML As String = GetInnerHTML()  
frmMain.textbox1.text=innerHTML
Dim docs As mshtml.HTMLDocument = WebBrowser1.Document.DomDocument  

我什么也没得到,如何在交叉线程中获取或设置字符串?我在多线程方面很差。

标签: vb.netmultithreading

解决方案


推荐阅读