针对界面显示的优化

This commit is contained in:
2025-12-27 14:16:50 +08:00
parent 127b07343e
commit 3718465463
14 changed files with 495 additions and 128 deletions

View File

@@ -107,22 +107,27 @@ public class Program
{
var builder = WebApplication.CreateBuilder();
// 注册缩放集群服务 (建议 Worker 数 = CPU 核心数,这里设为 4)
var scaleService = new ImageScaleCluster(4); // 环节一:缩放
var enhanceService = new ImageEnhanceCluster(4); // 环节二:增亮
// 1. 注册配置管理器(指挥部)
var configManager = new ProcessingConfigManager();
builder.Services.AddSingleton(configManager);
// 逻辑:缩放 -> 增亮 -> (自动到终点)
// 2. 初始化预处理流水线环节
// 建议:此处直接手动创建实例,以便精确控制链条顺序
var scaleService = new ImageScaleCluster(4, configManager); // 环节一
var enhanceService = new ImageEnhanceCluster(4, configManager); // 环节二
// 3. 编排流水线:缩放 -> 增亮 -> 终点(GlobalProcessingCenter)
scaleService.SetNext(enhanceService);
// 2. [核心] 将缩放服务“挂载到全局路由
// 从此刻起,所有驱动层的帧都会先流经 scaleService
// 4. 将流水线入口挂载到全局路由(驱动层改道)
GlobalPipelineRouter.SetProcessor(scaleService);
// 3. 注册到 DI 容器 (以便 Controller 或其他服务可以管理它,例如动态调整并行度)
builder.Services.AddSingleton<IFrameProcessor>(scaleService);
builder.Services.AddSingleton<IFrameProcessor>(enhanceService);
// 5. 【修复点】将具体实例注册到 DI 容器
// 这样 Controller 可以通过构造函数拿到具体的实例进行动态管理
builder.Services.AddSingleton(scaleService);
builder.Services.AddSingleton(enhanceService);
// 1. 配置 CORS
// 6. 配置 CORS
builder.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", policy =>
@@ -131,15 +136,15 @@ public class Program
});
});
// 7. 依赖注入注册
builder.Services.AddSingleton<IStorageService>(storage);
builder.Services.AddSingleton(manager);
builder.Services.AddSingleton(displayMgr);
//// 2. 日志降噪
//builder.Logging.SetMinimumLevel(LogLevel.Warning);
//builder.Logging.AddFilter("Microsoft.AspNetCore.Hosting.Diagnostics", LogLevel.Warning);
// 3. 【核心】依赖注入注册
// 将 storageService 注册为单例,这样 UserActionFilter 和 MonitorController 就能拿到它了
builder.Services.AddSingleton<IStorageService>(storage);
builder.Services.AddSingleton(manager);
builder.Services.AddSingleton(displayMgr);
// 显式注册过滤器 (这是防止 500 错误的关键)
builder.Services.AddScoped<UserActionFilter>();