如何使用性能计数器不断获得平均值?

时间:2014-02-20 17:54:40

标签: c# performancecounter

我每秒使用1个事件处理程序获取我的PC的RAM和CPU使用率,每个事件处理程序都会更新此信息。我指示将此信息打印在TextBox中。它工作正常。

除此之外,我试图不断更新平均RAM和平均CPU使用率。在程序运行10秒之后,我通过添加最后10秒的RAM值并将它们除以10得到平均值。相同的11秒,其中我除以11秒,依此类推。

我想我需要经常计算秒数,并不断添加ram计数和CPU使用次数。我目前正在使用性能计数器来获取CPU和RAM值。

我可以使用性能计数器来获得平均值吗?请指教。我的代码如下。

class Perform
{
    private PerformanceCounter cpuCounter;
    private PerformanceCounter ramCounter;

    public Perform()
    {
        cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total");
        ramCounter = new PerformanceCounter("Memory", "Available MBytes");
    }

    public float GetCurrentCpuUsage()
    {
        return cpuCounter.NextValue();
    }

    public float GetCurrentAvailableRam()
    {
        return ramCounter.NextValue();
    }
}

0 个答案:

没有答案