【发布时间】:2016-06-27 11:43:30
【问题描述】:
请看下面的代码:
Imports System.Windows.Forms
Imports System.Threading
Public Class clsLoadWebpageBehindScenes
Private boolDocumentCompleted As Boolean
' Private intTest As Integer
Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
Try
Dim BrowsePage As WebBrowser = DirectCast(sender, WebBrowser)
'BrowsePage.ClientSize = New Size(BrowsePage.Document.Body.ScrollRectangle.Width, BrowsePage.Document.Body.ScrollRectangle.Height)
BrowsePage.ScriptErrorsSuppressed = True
BrowsePage.ScrollBarsEnabled = True
BrowsePage.BringToFront()
'compressImage(ConvertedImage)
'MsgBox("Test")
boolDocumentCompleted = True
Catch ex As Exception
'MsgBox("Test")
Throw
End Try
End Sub
Public Sub LoadPage()
'Me.PageUrl = PageUrl
Dim thrCurrent As New Thread(New ThreadStart(AddressOf BrowsePage))
thrCurrent.SetApartmentState(ApartmentState.STA)
thrCurrent.Start()
thrCurrent.Join()
End Sub
Private Sub BrowsePage()
Try
Dim BrowsePage As New WebBrowser()
BrowsePage.ScrollBarsEnabled = False
AddHandler BrowsePage.DocumentCompleted, AddressOf _
WebBrowser_DocumentCompleted
BrowsePage.ScrollBarsEnabled = True
BrowsePage.ScriptErrorsSuppressed = False
'BrowsePage.DocumentText = "http://pcname/app/TestWebBrowser.aspx"
BrowsePage.Navigate("http://pcname/app/TestWebBrowser.aspx")
While boolDocumentCompleted = False
'intTest = intTest + 1
'While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
BrowsePage.Dispose()
Catch ex As Exception
Throw
End Try
End Sub
End Class
我有一个 Windows 窗体应用程序,它正在调用:LoadPage()
就我而言;应调用以下网页:
http://pcname/app/TestWebBrowser.aspx。然而,这并没有发生。我已经在网页中添加了Thread.Sleep(30000),但是立即到达了 WebBrowser_DocumentCompleted(由于Thread.Sleep(30000),它应该至少需要 30 秒。代码有什么问题?
【问题讨论】:
-
我想出了一个 VB 编程的新规则:如果您需要在代码中调用 Thread.sleep(),那么您可能做错了。
标签: .net vb.net multithreading