神奇的 Sleep() ?

gba8jing 2015-12-07 12:22:43

Private Sub Start_Im_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Sr()
End Sub


Private Delegate Sub XM()

Private Sub Sr()
Dim im As XM = AddressOf So
Dim ar As IAsyncResult
'WebBrowser1.Navigate("www.2345.com")
'Dim cb As AsyncCallback = AddressOf hd

ar = im.BeginInvoke(AddressOf Eo, "K")

End Sub

Private Sub Eo(ByVal ar As IAsyncResult)

End Sub

Private Sub So()
'Sleep(3000)
Dim doc As HtmlDocument = WebBrowser1.Document
MsgBox("k")
End Sub


窗口里有个 WebBrowser ,异步操作 WebBrowser 时,So() 里有个注释掉的 Sleep,注释掉的话就正常运行,不注释掉的话就会出现牛头不对马嘴的异常,百思不得其解,求大神解答。

本意是想要让线程等待3秒后在执行,结果抛出了一个“指定的转换无效”,感觉非常纳闷。



求解。
...全文
356 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2016-01-04
  • 打赏
  • 举报
回复
Sleep()的实质是把当前线程挂起,休眠一段时间。
你都不响应消息了,当然会产生不可预期的结果咯。
JirlangLianHongCh 2016-01-02
  • 打赏
  • 举报
回复
Private Sub Lob_WaitRock(ByVal Int_MilliSecond As Integer)

      Dim  LOB_Watch As New StopWatch
      LOB_Watch.Start()
      Do While LOB_Watch.ElapsedMilliseconds < Int_MilliSecond
           Application.DoEvents() 
      Loop
      LOB_Watch.Stop()

End Sub
使用方法: AAA() Lob_WaitRock(2600) '等待2.6秒后再执行BBB() BBB()
feihong0233 2015-12-13
  • 打赏
  • 举报
回复
使用WebBrowser跳转网页需要检查状态,在打开网页过程中尽量不要操作 可以判断WebBrowser1.IsBusy状态 最好将Navigate后的代码加入WebBrowser1_DocumentCompleted事件中去
Poopaye 2015-12-10
  • 打赏
  • 举报
回复
估计是太快了,网页还没加载完
轻鸿万里 2015-12-10
  • 打赏
  • 举报
回复
你可以用个timer控件来延时3秒执行试试。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧