public void Dispose() { lock (ThisLock) { if (isDisposed) { return; } isDisposed = true; } for (int i = 0; i < connectionReaders.Count; i++) { connectionReaders[i].Dispose(); } connectionReaders.Clear(); acceptor.Dispose(); }