针对界面显示的优化
This commit is contained in:
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user