传递to /列表背后的原因是什么?ArraySegment<byte>
Socket.BeginReceive
SocketAsyncEventArgs
Socket.BeginReceive
构造函数的 MSDN甚至没有正确描述第一个参数):
public IAsyncResult BeginReceive(
IList<ArraySegment<byte>> buffers,
SocketFlags socketFlags,
AsyncCallback callback,
object state
)
参数:
buffers
类型:类型System.Collections.Generic.IList<ArraySegment<Byte>>
数组Byte
,是接收数据的存储位置。
...
我认为主要的想法是在大对象堆上分配一个大缓冲区,然后将这个缓冲区的一部分传递给Socket.BeginReceive
,以避免将小对象钉在堆周围并弄乱 GC 的工作。
但是为什么我要向这些方法传递几个段呢?如果是SocketAsyncEventArgs
,似乎会使这些对象的池化复杂化,我看不出这背后的原因。