网络传输问题,你加的try-catch不要抛出异常就是了

解决方案 »

  1.   

    如何抛一次就不抛了!帮忙写下被!谢谢!是不是在finaly{}里做文章!  在里面应该写什么才能只抛一次????谢谢!
      

  2.   


    Thread MonitorNet = new Thread(new ThreadStart(this.NetStatus));//创建线程:监视网络连接情况
    Thread DataCenter = new Thread(new ThreadStart(this.ConDataCenter));//创建线程,用于和数据中心的通讯
    Boolean isConnect = false;//判断网络连接状况,以便决定是否向数据中心传输数据
    //code...
    private void NetStatus()
    {
        //判断目前网络连接状态,设定isConnect值
    }    
    private void ConDataCenter
    {
        if(isConnect)
        {
            try
            {
                //...
             }
            catch
            {
                isConnect = false;
                //...
            }
        }
    }
      

  3.   


    hook event to 
    System.Net.NetworkInformation.NetworkChange.NetworkAvailibityChangedor you can check network availability by calling
    System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()you can also ping your server
    System.Net.NetworkInformation.Pingyou should disable the timer if network is unavailable
      

  4.   

    现在的问题是:如果已经开始读取数据了,数据库已经打开了,在读的过程中网络中断,这个时候就会抛出异常!请问我用上面这个好使不?Thread MonitorNet = new Thread(new ThreadStart(this.NetStatus));//创建线程:监视网络连接情况
    Thread DataCenter = new Thread(new ThreadStart(this.ConDataCenter));//创建线程,用于和数据中心的通讯
    Boolean isConnect = false;//判断网络连接状况,以便决定是否向数据中心传输数据
    //code...
    private void NetStatus()
    {
        //判断目前网络连接状态,设定isConnect值
    }    
    private void ConDataCenter
    {
        if(isConnect)
        {
            try
            {
                //...
             }
            catch
            {
                isConnect = false;
                //...
            }
        }
    }
      

  5.   

    .net有个ping类 有个方法好像叫send ping 主机的IP 应该可以解决吧 个人认为
      

  6.   

    搞个全局变量,比如说布尔型的,是false就抛,抛了一次就true,如果检测到网络通了就变false
      

  7.   

    使用NetworkChange类的NetworkAvailabilityChanged 事件,
    static void Main(string[] args)
    {
              
                System.Net.NetworkInformation.NetworkChange.NetworkAvailabilityChanged += new System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler(NetworkChange_NetworkAvailabilityChanged);}        static void NetworkChange_NetworkAvailabilityChanged(object sender, System.Net.NetworkInformation.NetworkAvailabilityEventArgs e)
    {
                bool ok = e.IsAvailable;
                if (ok)
                {
                    //网络正常
                }
                else 
                {
                    //网络异常
                }
    }