我正在为程序添加一些新功能,这些功能目前通过串行连接将CPU使用率和RAM使用率发送给Arduino(请参阅this)。我正在尝试添加GPU和磁盘使用率。磁盘使用率不是问题,但是从Windows获取GPU使用率已成为真正的麻烦。
我尝试使用PerformanceCounter
,但这似乎根本不起作用!请参见下面的代码。
PerformanceCounter gpuCounter = new PerformanceCounter("GPU Engine", "Utilization Percentage");
string gpuUsage = gpuCounter.NextValue()
我想要这样的百分比使用GPU:
GPU使用率:#。#%
我有什么办法可以做到这一点?
答案 0 :(得分:2)
您需要为“ GPU引擎”创建PerformanceCounterCategory,然后在类别上调用GetInstanceNames()。然后,您可以在调用GetCounters(name)方法的名称字符串数组上进行迭代。
public List<PerformanceCounter> Sample ()
{
var list = new List<PerformanceCounter> ();
var category = new PerformanceCounterCategory ("GPU Engine");
var names = category.GetInstanceNames ();
foreach (var name in names)
list.AddRange (category.GetCounters (name));
return list;
}
您的列表中将同时包含“运行时间”和“利用率百分比”计数器。您可以基于CounterName属性筛选GetCounters返回的计数器。