{"record":{"id":"5ef08b0dfab09238","repo":"babalae/better-genshin-impact","slug":"maxwindows-html","errorCode":null,"errorMessage":"最多同时打开 {MaxWindows} 个HTML遮罩窗口","messagePattern":"最多同时打开 (.+?) 个HTML遮罩窗口","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"BetterGenshinImpact/View/HtmlMaskWindow.xaml.cs","lineNumber":80,"sourceCode":"\n    #region 静态窗口管理\n\n    /// <summary>\n    /// 显示HTML遮罩窗口\n    /// </summary>\n    public static string Show(string url, string? id, string workDir)\n    {\n        return Application.Current.Dispatcher.Invoke(() =>\n        {\n            // 指定ID时先关闭已有窗口\n            if (id != null && _windows.TryGetValue(id, out var existing))\n            {\n                existing.Close();\n            }\n\n            if (_windows.Count >= MaxWindows)\n            {\n                throw new InvalidOperationException($\"最多同时打开 {MaxWindows} 个HTML遮罩窗口\");\n            }\n\n            var window = new HtmlMaskWindow(url, id, workDir);\n            string wid = window.MaskId;\n            _windows[wid] = window;\n            window.Closed += (_, _) =>\n            {\n                _windows.TryRemove(wid, out _);\n                window.DisposeWebView();\n            };\n            window.Show();\n            return wid;\n        });\n    }\n\n    /// <summary>\n    /// 关闭指定窗口\n    /// </summary>","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/babalae/better-genshin-impact/blob/a7cb36712dcb409be610257d877fcea3597e9d6b/BetterGenshinImpact/View/HtmlMaskWindow.xaml.cs#L62-L98","documentation":"Error \"最多同时打开 {MaxWindows} 个HTML遮罩窗口\" thrown in babalae/better-genshin-impact.","triggerScenarios":"HtmlMaskWindow.Show 时静态字典 _windows 中已打开窗口数达到 MaxWindows 上限，再次打开即抛出。","commonSituations":"脚本/功能频繁打开HTML遮罩窗口而未关闭旧窗口（指定相同id会先关闭，不同id则累积）。","solutions":["关闭部分已打开的 HTML 遮罩窗口后再创建新窗口","在脚本中复用已有窗口而不是重复创建","检查脚本逻辑避免在循环中不断创建窗口"],"exampleFix":"打开新窗口前关闭不再需要的遮罩窗口，或复用相同 id 使旧窗口被替换关闭。","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7cb36712dcb409be610257d877fcea3597e9d6b","analyzedAt":"2026-08-13T16:44:57.548Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}