3

コンピューターで開始されたすべてのプロセスを管理するためのコード(c#)があります。

PerformanceCounterクラスを使用して、1つの特定のプロセスでリンクされているすべての値を検索します。

サンプルとして、このコードは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();
}

グローバルではなく、プロセスごとに使用バッテリーを取得したい。

サンプルとして、プロセス中に「firefox」が使用されていますが、多くのバッテリーが使用されていましたか?

プロセスが開始されたときとプロセスが強制終了されたときのバッテリーレベルを取得して違いを生むことを知っていますが、開始時間と終了時間のプロセスの間で、他の多くのプロセスが実行されていた可能性があり、実際のレベルのバッテリー使用ではありません。バッテリーも消費します。

何かアイデアがあれば、または解決策を知っているなら、私は非常に興味があります。

ありがとう。

4

1 に答える 1

3

すでに述べたように、多くのプロセスが同時に実行されている可能性があります。さらに、バッテリー使用量はCPU使用率に直接関係していません。HDDアクティビティ、グラフィックチップなどである可能性があります。したがって、プロセスごとの適切なバッテリー使用量を計算する方法はありません。

于 2012-07-31T10:15:14.800 に答える