Vb.net 将WebBrowser对象传递给后台工作程序

Vb.net 将WebBrowser对象传递给后台工作程序,vb.net,Vb.net,我正试图将webbrowser对象传递给后台工作程序,以便解析当前打开的页面并创建报告,但我似乎无法正确获取它 我需要访问通常访问的web元素,如下所示: TagList = WebBrowser1.Document.GetElementsByTagName("TR") 我想我可以做到: wrkCollectItems.RunWorkerAsync(WebBrowser1) 在“定位销”子对象中,它看起来像: ImportWebPageData(e.argument) 运行以下代码时: P

我正试图将webbrowser对象传递给后台工作程序,以便解析当前打开的页面并创建报告,但我似乎无法正确获取它

我需要访问通常访问的web元素,如下所示:

TagList = WebBrowser1.Document.GetElementsByTagName("TR")
我想我可以做到:

wrkCollectItems.RunWorkerAsync(WebBrowser1)
在“定位销”子对象中,它看起来像:

ImportWebPageData(e.argument)
运行以下代码时:

Private Sub ImportWebPageData(byval objWebArg as object)
    Dim TagList As HtmlElementCollection
    TagList = objWebArg.Document.GetElementsByTagName("TR") 'specified cast is not valid here
End Sub

为了正确地传递对象以访问它,我需要如何重新构造代码?感谢无法工作的

,文档对象由UI线程拥有,并且不是线程安全的。唯一的替代方法是在另一个线程上创建WebBrowser,如@HansPassant所示。也许我可以在本地保存一个web页面的副本,然后通过后台工作程序访问它,将文件路径字符串作为参数传递?另外,如果您想提供这个答案,您不能复制DOM。很确定我已经发布了答案,再次查看链接。