问题描述
PrivateSubStart_Im_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadSr()EndSubPrivateDelegateSubXM()PrivateSubSr()DimimAsXM=AddressOfSoDimarAsIAsyncResult'WebBrowser1.Navigate("www.2345.com")'DimcbAsAsyncCallback=AddressOfhdar=im.BeginInvoke(AddressOfEo,"K")EndSubPrivateSubEo(ByValarAsIAsyncResult)EndSubPrivateSubSo()'Sleep(3000)DimdocAsHtmlDocument=WebBrowser1.DocumentMsgBox("k")EndSub
窗口里有个WebBrowser,异步操作WebBrowser时,So()里有个注释掉的Sleep,注释掉的话就正常运行,不注释掉的话就会出现牛头不对马嘴的异常,百思不得其解,求大神解答。本意是想要让线程等待3秒后在执行,结果抛出了一个“指定的转换无效”,感觉非常纳闷。求解。
解决方案
解决方案二:
你可以用个timer控件来延时3秒执行试试。
解决方案三:
估计是太快了,网页还没加载完
解决方案四:
使用WebBrowser跳转网页需要检查状态,在打开网页过程中尽量不要操作可以判断WebBrowser1.IsBusy状态最好将Navigate后的代码加入WebBrowser1_DocumentCompleted事件中去
解决方案五:
PrivateSubLob_WaitRock(ByValInt_MilliSecondAsInteger)DimLOB_WatchAsNewStopWatchLOB_Watch.Start()DoWhileLOB_Watch.ElapsedMilliseconds<Int_MilliSecondApplication.DoEvents()LoopLOB_Watch.Stop()EndSub
使用方法:AAA()Lob_WaitRock(2600)'等待2.6秒后再执行BBB()BBB()
解决方案六:
Sleep()的实质是把当前线程挂起,休眠一段时间。你都不响应消息了,当然会产生不可预期的结果咯。