我的服务器是有防火墙,不能直接ping,用不了timeout的功能,只能用tryhost。但是tryhost又没有timeout的功能,我想写在disconnect事件里,断开连接30秒后执行tryhost,连接不上就关闭程序。怎么用代码设置30秒后才执行呢?
我爬帖找到延时的代码,大红袍老师写的
Dim LastTime As Date = Date.now
Do until (Date.Now - LastTime).TotalSeconds >= 2
Application.doevents
Loop
msgbox("2秒后看到")
那我写的代码如下
Select Case e.Mode
Case 3
MessageBox.show("连接超时,请重新打开程序")
Syscmd.Project.Exit()
Case 4
MessageBox.show("您已在其他地方的登陆,程序将被关闭")
Syscmd.Project.Exit()
End Select
Dim LastTime As Date = Date.now
Do until (Date.Now - LastTime).TotalSeconds >= 2
Application.doevents
Loop
msgbox("2秒后看到")
效果是断线后,先是停住2秒(此时客户端并没有尝试重连),然后弹出msgbox,然后openqq 的PopMessage弹出来,重连。
但是我想要的效果是 断线后,尝试重连,重连尝试2秒后,弹出msgbox
而且还有一个问题,就是我关闭软件的时候,一样会是先停住2秒,然后弹出msgbox,然后才能关闭,我一开始都以为软件无端端死了,突然才想起来是这个延时惹的祸。明显用户体验不行
请问有什么好的解决方法?
[此贴子已经被作者于2016/12/22 9:30:13编辑过]