public override void Stop() { List <TCPHandler> handlersToClose = new List <TCPHandler>(); lock (Handlers) { handlersToClose.AddRange(Handlers); } handlersToClose.ForEach(h => h.Close()); _argsPool.Dispose(); }
public void Stop() { if (Interlocked.Exchange(ref _state, _disposed) == _disposed) { return; } if (_tcpListenerSocket != null) { _tcpListenerSocket.Close(); _tcpListenerSocket = null; } if (_udpSocket != null) { _udpSocket.Close(); _udpSocket = null; } _services.ForEach(s => s.Stop()); _acceptArgsPool.Dispose(); _argsPool.Dispose(); }