[VB.NET]网络采集工具的页面内容下载在进程中没错,而在线程的就不行了?

网络采集工具的页面内容下载在进程中没错,而在线程的就不行了? 这个是取URL源文件的类: Public Class HtmlSource Private WithEvents Webbrowser As Webbrowser Private Document_Type As String = Public Html_Content As String = Public Function WebbrowserUrl(ByVal Url As Uri,ByVal Web_Type As String) As Boolean Try HtmlCode.Substring(Me.HtmlCode.IndexOf( > ),Me.HtmlCode.IndexOf( < ) - Me.HtmlCode.IndexOf( > )) Dim Falg As Boolean = True Document_Type = Web_Type Webbrowser = New Webbrowser Webbrowser.ScriptErroRSSuppressed = True Webbrowser.Navigate(Url) For i As Integer = 0 To 500 If Html_Content <> Then Return True Falg = False Exit For End If System.Threading.Thread.Sleep(1000) System.Threading.Thread.SpinWait(1000) Windows.Forms.Application.DoEvents() Next If Falg = True Then Return False Catch ex As Exception MsgBox(ex.Message) Return False End Try End Function Private Sub Webbrowser_DocumentCompleted(ByVal sender As System.Object,ByVal e As System.Windows.Forms.WebbrowserDocumentCompletedEventArgs) Handles Webbrowser.DocumentCompleted Try If Webbrowser.IsBusy = False Then Select Case Document_Type Case All Html_Content = Webbrowser.Document.GetElementsByTagName( html ).Item(0).OuterHtml Case Title Html_Content = Webbrowser.Document.Title.ToString Case Body Html_Content = Webbrowser.Document.Body.OuterHtml Case Links If Webbrowser.Document.Links.Count > 0 Then For i As Integer = 0 To Webbrowser.Document.Links.Count - 1 If i = 0 Then Html_Content = Webbrowser.Document.Links.Item(i).OuterHtml.Replace(vbCrLf,) Else Html_Content = Html_Content & vbCrLf & Webbrowser.Document.Links.Item(i).OuterHtml.Replace(vbCrLf,) End If Next Else Html_Content = End If Case Urls If Webbrowser.Document.Links.Count > 0 Then For i As Integer = 0 To Webbrowser.Document.Links.Count - 1 If i = 0 Then Html_Content = Webbrowser.Document.Links.Item(i).GetAttribute( href ).Trim.ToString.Replace(vbCrLf,) Else Html_Content = Html_Content & vbCrLf & Webbrowser.Document.Links.Item(i).GetAttribute( href ).Trim.ToString.Replace(vbCrLf,) End If Next Else Html_Content = End If Case Else Html_Content = Webbrowser.Document.GetElementsByTagName( html ).Item(0).OuterHtml End Select Else Html_Content = End If Catch ex As Exception Html_Content = End Try End Sub End Class 通过线程掉用该类会出现以下错误提示:当前线程不在单线程单元中,因此无法实例化ActiveX控件“8856f961-340a-11d0-a96b-00c04fd705a2” __________________________________________________________________________ up __________________________________________________________________________ 是线程的问题 __________________________________________________________________________ 是什么问题呀!!能告诉我吗!! __________________________________________________________________________ 看代码似乎没啥问题啊 怪 __________________________________________________________________________ ActiveX对象必须在设置为STA模式的单线程中. 如果是你自己写一段多线程序代码 就可以在线程执行之前设置其线程模型为STA 这样就可以执行了 __________________________________________________________________________

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...