在.NET Core中,如何获取给定进程的CPU使用率和虚拟内存?
Google搜索结果表明PerformanceCounter和DriverInfo类可以完成此任务。但是,PerformanceCounter和DriverInfo类在.NET Core中不可用。
stackoverflow中有一个有关此问题的帖子:How to get the current CPU/RAM/Disk usage in a C# web application using .NET CORE?
但是它只能解决: -当前进程的CPU使用率:
var proc = Process.GetCurrentProcess();
已给我进程(具有ProcessID整数格式)。如何在.NET Core中获取该特定进程的CPU使用率和虚拟内存?
答案 0 :(得分:1)
您可以在PerformnceCounter
package
System.Diagnostics.PerformanceCounter
例如,下一个代码将给您总处理器使用率百分比
var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", true);
var value = cpuCounter.NextValue();
// In most cases you need to call .NextValue() twice
if (Math.Abs(value) <= 0.00)
value = cpuCounter.NextValue();
Console.WriteLine(value);
答案 1 :(得分:-1)
我刚刚在Google中输入“在c#中获取所有进程”,并发现了这一点:
<h:form id="frmMain2">
<f:subview id="sub1">
<ui:repeat var="vatId" value="#{someBean.suppliesKeys()}" id="rep1">
<fieldset>
<legend>vatId</legend>
<h:panelGroup id="panel">
<ui:repeat var="item" value="#{someBean.supplies[vatId]}" id="rep2">
<f:subview id="sub2">
<h:commandLink id="command">
${item}
<f:ajax
event="click"
render=":frmMain2:sub1:rep1:0:panel">
</f:ajax>
</h:commandLink>
</f:subview>
</ui:repeat>
</h:panelGroup>
</fieldset>
</ui:repeat>
</f:subview>
</h:form>
我在asp.net core 2.2中进行了快速测试,并且使用System.Diagnostics可以正常工作;
但是我用Windows 10专业版来测试它。所以我不知道它是否可以与其他操作系统一起使用。
来源:https://www.howtogeek.com/howto/programming/get-a-list-of-running-processes-in-c/