Po wywołaniu Socket.Shutdown, Socket.Close i Socket.Disconnect okazuje się, że Socket.ReceiveAsync nie przerywa. Próby ponownego wykorzystania obiektu SocketAsycEventArgs używany w zaproszeniu ReceiveAsync (sugerowana w dokumentacji jako najlepszej praktyki) prowadzą do błędu:Anulowanie wywołania Socket.xxxxAsync
An asynchronous socket operation is already in progress using this SocketAsyncEventArgs instance
Co muszę zrobić, aby uzyskać ReceiveAsync aby zwolnić jej przyczepność na ten przykład SocketAsyncEventArgs?
Edytuj: Pracowałem nad tym, sygnalizując oczekujący odbiór i nie wykonując żadnego czyszczenia, dopóki nie nadejdzie odbiór (tj. Zakończono wysyłanie). Nie czuje się jednak zbyt dobrze. Czy nie można tego po prostu przerwać, tak jak API WebRequest?
Nie próbuje odpowiedzieć na postawione pytanie. Problem z OP polega na próbie ponownego użycia 'SocketAsyncEventArgs' przed uruchomieniem programu' Completed'. – binki