.Net SocketAsyncEventArgs的可重用性
我只是想确保我了解可重用性特性。据我所知,SocketAsyncEventArgs可以用于一个连接和不同的操作。因此,我可以将相同的SocketAsyncEventArgs用于连接/发送/接收(客户端)或接受/发送/接收(服务器)? 还是我仍然需要为不同的操作使用新的SocketAsyncEventArgs 我也知道SocketAsyncEventArgs主要是为服务器端的高性能而设计的。因此,正确的用法是在服务器上有一个SocketAsyncEventArgs池,用于为每个连接保存一个SocketAsyncEventArgs。以及为连接上的不同操作重用SocketAsyncEventArgs。在客户端,您可以只使用一个SocketAsyncEventArgs 我理解得对吗?不幸的是,我在文档中没有找到关于这一点的明确说明。回答我自己的问题: SocketAsyncEventArgs替换开始…/结束…所需的IAsyncResult。。。方法。 因此,对于服务器,您仍然必须有一个用于侦听的套接字。但是现在每个连接的客户端都有一个SocketAsyncEventArg,而不是一个Socket。 SocketAsyncEventArgs可重用,因为它可用于同一连接客户端的所有操作。 改进之处在于,对于连接的客户端上的每个操作,您都没有IAsyncResult。这降低了GC上的压力.Net SocketAsyncEventArgs的可重用性,.net,sockets,.net-core,tcp,socketasynceventargs,.net,Sockets,.net Core,Tcp,Socketasynceventargs,我只是想确保我了解可重用性特性。据我所知,SocketAsyncEventArgs可以用于一个连接和不同的操作。因此,我可以将相同的SocketAsyncEventArgs用于连接/发送/接收(客户端)或接受/发送/接收(服务器)? 还是我仍然需要为不同的操作使用新的SocketAsyncEventArgs 我也知道SocketAsyncEventArgs主要是为服务器端的高性能而设计的。因此,正确的用法是在服务器上有一个SocketAsyncEventArgs池,用于为每个连接保存一个Sock