You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PerformanceCounter实现CPU使用率图表可视化遇参数异常求助

解决CPU使用率折线图的类型错误问题

嘿,这个问题我太清楚了!你碰到的ArgumentException,根源是直接把PerformanceCounter对象传给了AddY()方法——但Chart控件的这个方法只接受错误提示里列出的类型(比如Double、int这些),完全不认识整个PerformanceCounter实例。

修正后的代码示例

// 初始化CPU使用率计数器
PerformanceCounter CPUCounter = new PerformanceCounter("Processor Information", "% Processor Time", "_Total");

// 重要提示:第一次调用NextValue()通常会返回0,建议先调用一次丢弃初始值
CPUCounter.NextValue();
// 短暂等待让计数器收集有效数据
System.Threading.Thread.Sleep(100);

// 获取当前CPU使用率的double数值,再添加到图表系列中
double currentCpuUsage = CPUCounter.NextValue();
chart1.Series["Usage %"].Points.AddY(currentCpuUsage);

额外实用建议

  • 如果要做实时更新的折线图,建议用System.Windows.Forms.Timer(WinForms场景)或者合适的定时器组件,每隔几百毫秒调用一次NextValue()并添加新的数据点,同时可以限制图表显示的点数(比如只保留最近50个),避免图表数据过多导致卡顿。
  • 程序退出或者不再需要计数器时,记得调用CPUCounter.Dispose()释放系统资源,防止内存泄漏。

其实错误提示已经把问题说得很明白了:Series的数据点不支持System.Diagnostics.PerformanceCounter类型,只接受指定的数值/字符串等类型——核心就是把计数器转换成它的数值再传入就好啦。

内容的提问来源于stack exchange,提问作者MizzyMonMit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:37:18