public override void Dispose() { if (IsDisposed) { return; } foreach (long id in idChannels.Keys.ToArray()) { TChannel channel = idChannels[id]; channel.Dispose(); } acceptor?.Close(); acceptor = null; innArgs.Dispose(); }