.Net 獲取每個 Process 的 CPU 使用率 (TotalProcessorTime) .Net 獲取每個 Process 的 CPU 使用率 (TotalProcessorTime)
  .NET       ez      2012-05-04

.Net 並無法直接取得 Process 的 CPU使用率,所以利用 Process 在某時間區段內,CPU的使用時間來計算,即可得到 CPU 使用率。

CPU使用率 = 某時間取段 CPU 使用時間 / CPU 邏輯數量 程式碼如下:

using System;
using System.Diagnostics;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            UsingProcess("taskmgr");
        }

        static void UsingProcess(string pname)
        {
            using (var pro = Process.GetProcessesByName(pname)[0])
            {
                int interval = 1000; //間格時間
                while (true)
                {
                    var ProcessorTime = pro.TotalProcessorTime;
                    System.Threading.Thread.Sleep(interval);
                    var value = (pro.TotalProcessorTime - ProcessorTime).TotalMilliseconds / interval / Environment.ProcessorCount * 100;
                    Console.WriteLine(value);
                }
            }
        }
    }
}

標籤:   .NET

我要留言