Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SocketServer/TcpSocketServer.Dispose.cs
@@ -5,13 +5,29 @@ { public partial class TcpSocketServer { /// <summary> /// 释放服务器资源 /// </summary> /// <remarks> /// 停止监听、取消所有客户端任务、关闭监听器、释放信号量。 /// 调用此方法后,服务器无法再次使用。 /// </remarks> 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"); } }