Foxtable(狐表)用户栏目专家坐堂 → 发布后的项目,若网络断开后又重新恢复,出现程序一直无响应,该怎么处理啊?


  共有2530人关注过本帖树形打印复制链接

主题:发布后的项目,若网络断开后又重新恢复,出现程序一直无响应,该怎么处理啊?

帅哥哟,离线,有人找我吗?
guosheng
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/8/2 14:26:00 [只看该作者]

1.建立了一个自动执行的项目计划,每3秒执行一次:messagebox.show(1)

2.NetworkAvailabilityChanged事件:

MyTimers("计划1").Enabled = e.IsAvailable
messagebox.show(e.IsAvailable)

 

3、把本地网络断开后,发现 messagebox.show(1) 依然在执行。

即:并没有因为本地网络断开,而终止了计划1。老师看看咋回事吧

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.foxdb


 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107747 积分:548074 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/2 15:48:00 [只看该作者]

测试了一下,NetworkAvailabilityChanged事件。如果电脑有多个网络(控制面板\网络和 Internet\网络连接,包括一些虚拟的网络设备)只要有一个是通的,都不会触发,需要全部都关闭才被触发。

建议使用8楼的用法

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2019/8/2 17:00:00 [只看该作者]

BeforeShowErrorMessage加入以下代码,解决了系统:

If e.Message2.indexof("一般性网络错误") > -1 Or  e.Message2.indexof("SQL Server 不存在或拒绝访问") > -1 Then
    MyTimers("计划1").Enabled = False

    If vars("select") = False   ‘这句干啥呢,有啥用啊
        'vars("select") = True  ‘这一句,注释掉了,否则断网后客户端就死机了
        
        Dim Result As DialogResult
        Result = MessageBox.Show("网络不通,点击是将退出,点击(否)继续等待网络正常后再操作!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        If Result = DialogResult.Yes Then
            Syscmd.Project.Exit(False)
        Else
            e.Cancel=True
            Return
        End If
       
    End If
   
Else
    MyTimers("计划1").Enabled = True       '这句即使放着好像也没用,只有弹出 不是if 之后的那两种的错误窗口才会执行
   
End If

 

问题是:当断了本地网络后,点击 弹窗的“是” 时,出现弹窗“正在加载数据的过程,不能关闭项目”,怎么没能关闭掉项目啊?

其实我就想   断网的话,让 计划1 停止掉,网络恢复了就 将 计划1 继续执行啊(以上代码可以解决,停掉 计划1,但是不能解决 继续执行计划1)


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/8/2 17:14:43编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107747 积分:548074 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/2 17:21:00 [只看该作者]

If vars("select") = False是别人项目里的用法,可以去掉。参考代码的时候先理解再用而不是只会抄。

上面的用法只能判断网络不能连接的情况,网络连接后没有办法知道。

或者不要停掉计划管理,在计划管理里先判断网络是否通,再连接:http://www.foxtable.com/webhelp/topics/2709.htm

 回到顶部
总数 14 上一页 1 2