小弟在做一项目,用到TCP通信,由于一个有意义的数据帧通常有几个数据包组成,因此想设置一个缓冲区来组合多个数据包成一个数据帧。但由于使用全局变量如 byte buffer=new byte [50]会在第一次使用完之后,未使用的单元会被垃圾收集器收集,因而无法加入新数据。而使用局部变量则生命周期不够。那位大侠可以指点迷津,给点思路,在此谢过。

解决方案 »

  1.   

    在 C# 中,可以使用 fixed 语句在数据结构中创建带有固定大小数组的缓冲区
    在不安全模式中,可以在堆栈上分配内存。堆栈不受垃圾回收的制约,因此不需要被锁定不知道是不是楼主需要的
      

  2.   

    我觉得用MemoryStream就可以啊~~
      

  3.   


    看不懂。变量是在对象中的,或者是在类中的(static)。如果要控制变量的生命期,就要控制对象的生命期。这就上升到面向对象设计模型的问题了。但是你的描述完全看不出你如何设计系统,或者是使用的语言无法交流。例如你可以使用等价于类图、时序图、状态图的语言文字来描述静态和动态模型,才能明白。