refactor: 简化进程去重逻辑,直接使用 GroupBy 和 Select

使用 GroupBy 和 Select 直接获取唯一的进程对象,避免创建中间字典和手动释放重复的 Process 对象,使代码更简洁。
This commit is contained in:
辉鸭蛋
2026-02-24 19:29:09 +08:00
parent 01c506fa13
commit 53854e6d28

View File

@@ -320,18 +320,11 @@ public class SystemControl
try
{
var processNames = TaskContext.Instance().GetGenshinGameProcessNameList();
var allProcesses = processNames
var processes = processNames
.SelectMany(Process.GetProcessesByName)
.ToList();
var processMap = allProcesses
.GroupBy(p => p.Id)
.ToDictionary(g => g.Key, g => g.First());
// 释放重复的 Process 包装对象
foreach (var p in allProcesses.Where(p => !ReferenceEquals(p, processMap[p.Id])))
{
p.Dispose();
}
var processes = processMap.Values.ToArray();
.Select(g => g.First())
.ToArray();
if (processes.Length > 0)
{