using System; using System.IO; namespace WIDESEAWCS_Tasks.SocketServer { public partial class TcpSocketServer { public void Dispose() { _cts?.Cancel(); _listener?.Stop(); _cts?.Dispose(); foreach (var sem in _clientLocks.Values) { try { sem.Dispose(); } catch { } } _clientLocks.Clear(); Log($"[{DateTime.Now}] TcpSocketServer stopped"); } } }