private void IssueReceive() { if (!_issueCountFlag.Increment()) { return; } if (_receiveLargeBuffer == null) { _receiveArgs.SetBuffer( _receiveLength, _receiveBuffer.Length - _receiveLength); } else { _receiveArgs.SetBuffer( 0, _receiveBuffer.Length); } try { if (!_socket.ReceiveAsync(_receiveArgs)) { OnReceiveComplete(_socket, _receiveArgs); } } catch (SocketException e) { HandleSocketError(e.SocketErrorCode); } catch (ObjectDisposedException) { HandleSocketError(SocketError.NotConnected); } }