本帖最后由 xiaoqiang5448 于 2012-06-28 01:17:15 编辑

解决方案 »

  1.   

     
    Connection.cs
      public delegate void ShowDataHandle(byte[] buff);
      public event ShowDataHandle ShowData;
       
      //获取数据
      void GetData()
      {
          ShowData(buff);//触发事件
      }
    UI.cs
    Connection.ShowData+= new Connection.ShowDataHandle(tcpconn_ShowData);void tcpconn_ShowData(byte[] buff)
    {
      //更新数据到UI
    }
      

  2.   


    那就是收到数据的时候,得通知UI线程有数据了喽,然后UI线程去取数据。
      

  3.   

    频繁更新UI:
        建议先缓存(不直接更新到UI),当收到的帧达到一定数量时一起更新到UI,或者定时更新到UI.
    粘包:
        我想这个是这类程序必须处理的一个问题吧?
        我之前的做法是将接收到的数据先判断是否包含一个完整的帧(当然帧是可以自解释的),如果有,则截取一个完整的帧,把剩余的数据暂时保存,等待下次接收到数据时,合并后再判断是否包含完整的帧,如此循环。这个办法不是很通用,需要有一定的假设前提。希望对楼主有用。
      

  4.   

    开源代码:Http请求封装类库HttpLib介绍、使用说明 
    http://www.suchso.com/opencode/opencodehttprequestclasshttplibuse.html