我现在有一段持续性的数据(数据里面的每一段数据都是独立的) 转换成图片然后用Picturebox的方式
while(ture)
{
    this.picturebox.image= 图片数据流
}我做过用GDI 画图的方法做过,不过听别人说 这样的持续性的数据 用画图的方法放到picturebox 显示出来效率不高而且 还经常出现 资源产生冲突我就想到了用图片数据流的方式 可是 自己又不会希望有会的同仁 帮帮我 
我把我的全部分数都给你 虽然不多 但也有40分 

解决方案 »

  1.   

    Bitmap bt;
    this.picturebox.image=bt;
     public event SPicData ShowPicData;
    public delegate void SPicData(Bitmap bp);
    #region 接收流并转图片
            /// <summary>
        
            public void ResevData()
            {
                //声明字节数组,每次接收数据的长度为4字节获得图片数据包长度
                byte[] recvBytes;
                byte[] recvBytesData ;
                //返回实际接收内容的字节数 
                int bytes = 0;
                int picDataLength = 0;
                //循环读取,直到接收完所有数据 
              
                while (true)
                {
                    if (socket.Available != 0)
                    {
                        recvBytes = new byte[40960];//数据接收缓冲40k
                        bytes = socket.Receive(recvBytes);
                        //读取完成后退出循环 
                        if (bytes <= 0) continue;
                        else
                        {
                             Buffer.BlockCopy(recvBytes, 0, recvBytesData, 0, 0);
                          
                            picDataLength = BitConverter.ToInt32(recvBytes, 0);
                            //如果接收到的数据长度和数据包前4字节给出的数据长度不一致 则丢弃该条数据
                            if (picDataLength != bytes )
                            {
                                recvBytes = null;
                                recvBytesData = null;
                                bytes = 0;
                                continue;
                            }
                            else
                            {
                                recvBytesData = new byte[picDataLength];
                                Buffer.BlockCopy(recvBytes, 0, recvBytesData, 0, picDataLength);                                             MemoryStream ms = new MemoryStream(recvBytesData);                         
                                    bt = new Bitmap(ms);
                          
                                ShowPicData(bt);                        }
                            recvBytes = null;
                            recvBytesData = null;
                            bytes = 0;
                           
                       }
                      
                    }
                   
                }
           
            }
            #endregion
      

  2.   

    看看这个:    http://hi.baidu.com/libeiqi1201/blog/item/fbaf4f1030d8320c213f2ed1.html