在调用 Socket.Shutdown、Socket.Close 和 Socket.Disconnect 之后,似乎 Socket.ReceiveAsync 不会中止。尝试重用用于 ReceiveAsync 调用的 SocketAsycEventArgs 对象(建议在文档中作为最佳实践)会导致错误:
一个异步套接字操作正在使用此SocketAsyncEventArgs实例中进行。
我该怎么做才能让ReceiveAsync释放对此SocketAsyncEventArgs实例的控制?
我已经通过标记挂起接收并在接收到到来之前不进行任何清理来解决这个问题(即已完成的调度)。虽然感觉不太好。它不能像WebRequest API一样被中止吗?