降低CPU使用率,处置好因降低CPU使用率带来的颜色偏差

This commit is contained in:
2026-01-31 10:43:41 +08:00
parent 6661edfc44
commit 4afbf06439
17 changed files with 360 additions and 64 deletions

View File

@@ -10,6 +10,8 @@ namespace SHH.CameraService;
public class Program
{
private static bool _isExiting = false;
/// <summary>
/// 主程序
/// </summary>
@@ -32,6 +34,12 @@ public class Program
string argString = string.Join(" ", args);
sysLog.Debug($"[Core] 🚀 启动参数({(isDebugArgs ? "" : "")}: {argString}");
AppDomain.CurrentDomain.ProcessExit += (s, e) => HandleExit("ProcessExit");
Console.CancelKeyPress += (s, e) => {
e.Cancel = true; // 阻止立即强制杀死进程
HandleExit("CancelKeyPress");
};
// =============================================================
// 2. 硬件预热、端口扫描、gRpc链接
// =============================================================
@@ -123,6 +131,28 @@ public class Program
var sysLog = Log.ForContext("SourceContext", LogModules.Core);
sysLog.Information($"[Core] 🚀 核心业务逻辑已激活, 设备管理器已就绪.");
}
/// <summary>
/// 退出, 刷新日志
/// </summary>
/// <param name="source"></param>
private static void HandleExit(string source)
{
if (_isExiting) return;
_isExiting = true;
Log.ForContext("SourceContext", LogModules.Core)
.Warning("// Modified: 处理手动关闭请求。来源: {Source}", source);
// TODO: 执行 SHH.CameraService 的清理逻辑 (释放海康/大华 SDK 句柄)
Log.ForContext("SourceContext", LogModules.Core)
.Warning("SHH.CameraService 已安全关闭,日志已刷新。");
// 必须显式调用,否则在 ProcessExit 触发时异步日志可能丢失
Log.CloseAndFlush();
Environment.Exit(0);
}
}
/*