mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-03-15 07:43:20 +08:00
refactor: 简化进程去重逻辑,直接使用 GroupBy 和 Select
使用 GroupBy 和 Select 直接获取唯一的进程对象,避免创建中间字典和手动释放重复的 Process 对象,使代码更简洁。
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user