NetMQ 协议,支持摄像头增、删、改

This commit is contained in:
2026-01-12 18:27:58 +08:00
parent 031d4f3416
commit 3f8e42e560
20 changed files with 604 additions and 332 deletions

View File

@@ -147,10 +147,37 @@ namespace SHH.CameraDashboard
public void Stop()
{
_isRunning = false;
_poller?.Stop();
_poller?.Dispose();
_routerSocket?.Dispose();
// 增加锁,防止重复释放
lock (_disposeLock)
{
if (!_isRunning) return;
_isRunning = false;
Console.WriteLine("[Bus] 正在释放 NetMQ 资源...");
// 1. 停止 Poller
if (_poller != null)
{
_poller.Stop();
_poller.Dispose();
_poller = null;
}
// 2. 释放 Socket
if (_routerSocket != null)
{
_routerSocket.Close();
_routerSocket.Dispose();
_routerSocket = null;
}
// 3. ★★★ 解决残留的关键:强制清理静态环境 ★★★
// 参数为 true 会等待后台 I/O 线程完成(可能卡住),
// 参数为 false 则强制放弃未完成的 I/O 直接关闭。
NetMQConfig.Cleanup(false);
Console.WriteLine("[Bus] NetMQ 资源已安全释放。");
}
}
public void Dispose() => Stop();