調用Socket.Shutdown,Socket.Close和Socket.Disconnect後,看起來Socket.ReceiveAsync不會中止。嘗試再次在ReceiveAsync調用(文檔最佳實踐建議)使用導致錯誤的SocketAsycEventArgs對象:取消Socket.xxxxAsync調用
An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance
我有什麼做的就是ReceiveAsync將發佈關於該讓SocketAsyncEventArgs實例的抓地力?
編輯:我已經解決了這個問題,通過標記掛起的接收,並且在接收進來之前不進行任何清理(即完成已分派)。雖然感覺不太好。不能只是中止,如WebRequest API?
這不會嘗試回答提出的問題。 OP的問題來自嘗試在`Completed`處理器被觸發之前重用`SocketAsyncEventArgs`。 – binki 2018-01-09 22:03:02