ProcessCpuUsage类 - 资源监视器

时间:2016-12-21 09:45:20

标签: c# uwp

我想创建资源监视器作为UWP应用程序。我从System.Diagnostics读了很多关于performanceCounter类的内容,但是......这个类不包含在UWP中。然后我读了一些本地课程,但我的技能太低而无法实现; /。

然后我找到了ProcessCpuUsage类Windows.SystemDiagnostics;我尝试实现这个类,但我找不到有关构造函数的信息,我不知道如何实现它?我可以从这堂课获得什么信息?

在我的应用程序中,我需要使用cpu / ram使用的字符串,以及有关可用磁盘空间的信息,我想将其显示为小部件。请帮忙。

1 个答案:

答案 0 :(得分:2)

ProcessCpuUsage类没有构造函数,它提供对进程CPU使用率数据的访问。此类只有GetReport方法,该方法获取进程的ProcessCpuUsageReport。使用ProcessCpuUsageReport课程,我们可以获得该流程消耗的KernelTimeUserTime

要获取ProcessCpuUsage对象,我们需要使用ProcessDiagnosticInfo.CpuUsage属性。这是ProcessDiagnosticInfo类中的一个属性。此类提供有关进程的诊断信息,例如CPU使用率,磁盘使用情况,内存使用情况等。 ProcessDiagnosticInfo类有两种静态方法:GetForCurrentProcessGetForProcesses,可帮助我们获取ProcessDiagnosticInfo

但请注意,这两种方法只能获取与您自己的应用相关的ProcessDiagnosticInfo GetForProcesses方法可以为所有正在运行的进程返回ProcessDiagnosticInfo个对象的列表。但在这里"所有正在运行的流程"表示同一App Container中的所有正在运行的进程。例如,对于使用out-of-process background tasks的UWP,GetForProcesses方法可能会返回多个ProcessDiagnosticInfo,包括运行后台任务。但对于一个简单的UWP应用程序,它可能总是返回一个ProcessDiagnosticInfo。由于UWP应用程序在应用程序容器中运行并且彼此隔离,因此此方法无法为计算机/设备中的所有正在运行的进程返回诊断信息。

因此,如果您要创建资源监视器应用程序,UWP可能不是一个好的选择。经典桌面应用可能更适合您的场景。