@@ -62,7 +62,13 @@ public void InitializeAsync()
6262 // 注意:CategoryName 即使在中文系统通常也支持英文,为了兼容性优先用英文
6363
6464 // CPU 负载:使用 Processor Information 类别 (Win8+ 推荐),兼容性更好
65- _cpuLoadCounter = CreateCounter ( "Processor Information" , "% Processor Time" , "_Total" ) ;
65+ // [Fix] 使用 "% Processor Utility" 而非 "% Processor Time"
66+ // 任务管理器在 Win8+ 显示的是 "Utility" (考虑睿频),而非 "Time"
67+ _cpuLoadCounter = CreateCounter ( "Processor Information" , "% Processor Utility" , "_Total" ) ;
68+
69+ if ( _cpuLoadCounter == null )
70+ _cpuLoadCounter = CreateCounter ( "Processor Information" , "% Processor Time" , "_Total" ) ; // 回退1
71+
6672 if ( _cpuLoadCounter == null )
6773 _cpuLoadCounter = CreateCounter ( "Processor" , "% Processor Time" , "_Total" ) ; // 旧系统回退
6874
@@ -175,7 +181,12 @@ private void InitStaticHardwareInfo()
175181 // 安全取值方法 (内部消化异常,失败返回 null)
176182 // ==========================================
177183
178- public float ? GetCpuLoad ( ) => SafeRead ( _cpuLoadCounter ) ;
184+ public float ? GetCpuLoad ( )
185+ {
186+ var val = SafeRead ( _cpuLoadCounter ) ;
187+ // [Fix] Utility 计数器在睿频时可能超过 100%,需截断以匹配任务管理器行为
188+ return val > 100f ? 100f : val ;
189+ }
179190
180191 public float ? GetCpuFreq ( )
181192 {
0 commit comments