按流程获取电池使用情况

时间:2012-07-31 10:10:16

标签: c# process

我有一个代码(在c#中)用于管理我计算机中的所有进程。

我使用PerformanceCounter类来查找在一个特定过程中链接的所有值。

对于示例,此代码重新启动了firefox的处理器时间使用:

PerformanceCounter processorTime = new PerformanceCounter("Process", "% Processor Time", "firefox");

double processTime = 0;

while(true){
    processTime = processorTime.NextValue();
}

另外,我知道如何检索电池的百分比:

PowerStatus power = SystemInformation.PowerStatus;
float secondsRemaining = power.BatteryLifePercent;
if (secondsRemaining >= 0)
{
    kpiBattery.batteryLevel = (secondsRemaining * 100).ToString();
}

我希望获得使用电池BY PROCESS,而不是全局。

对于样本,在此过程中" firefox"使用,许多电池使用谁?

我知道我希望在开始流程和流程被杀时获得电池电量,并且有所不同,但是,它不是真正的电池使用水平,因为在开始和结束时间过程之间,可能很多其他进程正在运行,也消耗电池。

如果您有任何想法,或者您知道解决方案,我非常感兴趣。

感谢。

1 个答案:

答案 0 :(得分:3)

正如您已经说过的,很多进程可以同时运行。此外,电池使用量与CPU使用率没有直接关系。它可能是硬盘活动,图形芯片等。因此,无法计算每个过程的足够电池使用量。