Program.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. namespace Test.CpuTime
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. UsingProcess("Marx");
  14. }
  15. //+ using System.Diagnostics
  16. //+ using System.Threading
  17. static void UsingProcess(string pname)
  18. {
  19. using (var pro = Process.GetProcessesByName(pname)[0])
  20. {
  21. //间隔时间(毫秒)
  22. int interval = 1000;
  23. //上次记录的CPU时间
  24. var prevCpuTime = TimeSpan.Zero;
  25. while (true)
  26. {
  27. //当前时间
  28. var curTime = pro.TotalProcessorTime;
  29. //间隔时间内的CPU运行时间除以逻辑CPU数量
  30. var value = (curTime - prevCpuTime).TotalMilliseconds / interval / Environment.ProcessorCount * 100;
  31. prevCpuTime = curTime;
  32. //输出
  33. Console.WriteLine($"{curTime}-{prevCpuTime}, CPU: {value} %");
  34. Thread.Sleep(interval);
  35. }
  36. }
  37. }
  38. }
  39. }