namespace SHH.CameraSdk; /// /// [配置中心] 预处理参数管理器 /// 职责:提供线程安全的配置读写接口,连接 Web API 与 底层 Worker /// public class ProcessingConfigManager { // 内存字典:Key=设备ID, Value=配置对象 private readonly ConcurrentDictionary _configs = new(); /// /// 获取指定设备的配置(如果不存在则返回默认值) /// /// 设备ID /// 配置对象(非空) public ProcessingOptions GetOptions(long deviceId) { // GetOrAdd 保证了永远能拿回一个有效的配置,防止 Worker 报空指针 return _configs.GetOrAdd(deviceId, _ => ProcessingOptions.Default); } /// /// 更新指定设备的配置(实时生效) /// public void UpdateOptions(long deviceId, ProcessingOptions newOptions) { if (newOptions == null) return; // 直接覆盖旧配置,由于是引用替换,原子性较高 _configs.AddOrUpdate(deviceId, newOptions, (key, old) => newOptions); Console.WriteLine($"[ConfigManager] 设备 {deviceId} 预处理参数已更新: " + $"Expand={newOptions.EnableExpand} Shrink:{newOptions.EnableShrink} 分辨率:({newOptions.TargetWidth}x{newOptions.TargetHeight}), " + $"Enhance={newOptions.EnableEnhance}"); } }