错误提示:ObjectDisposedException
              system.Net.Socket.
    系统:WinCE。
    为了方便,自己写了个函数,实现用Socket发送数据并显示。偶尔会出现如上的错误提示,而且我看了一下都是在定时器中调用的时候才出现。调用这个函数的地方不多,一个线程和2个定时器(界面定时器和线程定时器都会出现)。
    还有一点,用有线局域网的时候没出现此问题,用联通3G模块(RJ45接口的)时就会出现。锁也加了,try cath也用了,就是解决不了,实在想不出哪的问题了,请教一下各位,先谢了!!!

解决方案 »

  1.   

    对象被释放了,需要加判断socket对象存在才操作.
      

  2.   

    socket中出现异常很正常,需要增加判断,或TRY
      

  3.   

    try catch和锁我都用了,代码如下,麻烦大家给看看try
                    {
                        lock (LockSocket)
                        {
                            socketClient.Send(sendToServer, len, SocketFlags.None);     //发往服务器
                        }                     
                        //*************************显示在网络发送文本框中****************
                        socketDataShow(sendToServer, false, showSocketData);
                        //*************************显示在网络发送文本框中****************
                    }
                    catch (SocketException ex)
                    {
                        socketFlag = false;
                        serialFlag = false;
                        logWriter("网络发送", "发送失败,提示:"+ex.Message);
                    }
      

  4.   

    这段代码看不出问题,是否多线程操作socketClient ?
      

  5.   

    一个线程接收,加入list列表中,另一线程进行处理并回复,还有两个定时器,偶尔会发点很短的内容。
      

  6.   

    联通3G模块信号如果不稳定,会导致socket断开的。
      

  7.   

    感谢各位,问题原因找到了,catch的是socketexception,没有捕获ObjectDisposedException
      

  8.   

    非常感谢zdbb,能回答3次,感激涕零。您第一次就判断出了原因,但我太菜了,没理解透。再次感谢,好人一生平安!!!!!