苏飞论坛

标题: wince 实时检测网络连接 [打印本页]

作者: 小浪子    时间: 2014-9-9 15:33
标题: wince 实时检测网络连接
wince 调用webservice每隔一秒刷新一次,在网络断开的时候会提示“网络故障”,但是因为有timer控件,一直有弹出框出来,怎么才能在网络异常的时候,让弹出框只弹出来一次?catch到异常return、timer.enable=false这些都试过不行……

作者: 站长苏飞    时间: 2014-9-9 15:35
具体要看你这部分代码是怎么写的吧
作者: 小浪子    时间: 2014-9-9 15:40
站长苏飞 发表于 2014-9-9 15:35
具体要看你这部分代码是怎么写的吧

代码:
作者: 小浪子    时间: 2014-9-9 15:40
站长苏飞 发表于 2014-9-9 15:35
具体要看你这部分代码是怎么写的吧

try
            {
                SysInvoicing.WebReference.StockService service = new SysInvoicing.WebReference.StockService();
                string code = txtCode.Text.Trim();
                if (string.IsNullOrEmpty(code))
                {
                    MessageBox.Show("物料条码不能为空!");
                }
                service.UpdateFrame(code);
            }
            catch (Exception ex)
            {
                MessageBox.Show("请检查网络连接");
                return;
            }
作者: 站长苏飞    时间: 2014-9-9 15:51
return;
MessageBox.Show("请检查网络连接");

或者
直接删除MessageBox.Show("请检查网络连接");
作者: 小浪子    时间: 2014-9-9 16:09
站长苏飞 发表于 2014-9-9 15:51
return;
MessageBox.Show("请检查网络连接");

弹出提示框是客户要求的,MessageBox.Show("请检查网络连接")写在retrun后面提示“检测到无法访问的代码”
作者: 站长苏飞    时间: 2014-9-9 16:17
懂你的意思了,只要一次方便。

直接定义一下变量
[C#] 纯文本查看 复制代码
Boolean b=true;


然后

[C#] 纯文本查看 复制代码
   catch (Exception ex)
            {
    if(b)
     {
           b=false;
              MessageBox.Show("请检查网络连接");
       }
                return;
            }

这样就只提示一次了。
作者: ching126    时间: 2014-9-10 09:15
我只是路过打酱油的。
作者: asp.net0610    时间: 2014-9-10 11:58
你可以做一个开关或者检测的断开连接后停用timer
作者: Cheungnotes    时间: 2014-9-11 17:05
我只是路过打酱油的。
作者: superai    时间: 2014-9-15 18:42
看样子检查部分的代码放在子过程了?timer通过返回值判断是否继续执行呗
作者: minidick    时间: 2014-9-23 21:55
定义一个静态变量
[C#] 纯文本查看 复制代码
private static bool isConnected = true;


然后在catch块中
[C#] 纯文本查看 复制代码
if (isConnected)
{
    isConnected = false;
    MessageBox.Show("网络连接丢失");
}

return;





欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4