1)可以查看进程的各项基本信息,如cpu,内存,父进程,执行路径,创建者等

2)可以中止进程,创建新进程

3)可以配置目标进程,配置刷新速度

最终效果图:
.NET基础示例系列之十六:制做进程监视器

 

(以下给出部分代码,其余像进程的创建、中止等,使用process类将很容易实现)

1)使用wmi获取父进程id,进程创建者

(注意,使用wmi获得的内容,不宜循环刷新,这样代价比较大)

添加命名空间:

using System.Management;

 

.NET基础示例系列之十六:制做进程监视器

 

 

2)使用性能计数器计算cpu利用率

2.1)计算过程

//通过计数器获取idle空闲进程cpu占用率r1

//通过process类的TotalProcessorTime属性获取各进程的cpu时间,求和,得各进程(除空闲进程idle,该进程无法通过process类获得cpu时间)cpu时间和t1

//通过t1/(100-r1)得到总cpu时间t

//对各进程,通过TotalProcessorTime获得进程cpu时间tnew,计算:

(Tnew-told)/t,即得该进程的cpu占用率,其中told是程序中记录的该进程上一次的TotalProcessorTime

 

2.2)关于性能计数器

系统会为每个进程分配一个计数器,通过

new PerformanceCounter("Process", "% Processor Time", "进程名称")实例化该计数器,使用计数器对象的NextValue方法可以得到进程占用cpu的百分比(第一次调用NextValue获取的值都为0,之后就没问题了,这个要注意)。

 

2.3)Idle进程的含义

Idle意为懒散的、无所事事。事实上,idle不能算着一个进程,它用于表示cpu空闲资源,它所占的比率越高,表示你的机器越空闲。

 

2.4)多核CPU或使用超线程技术的CPU

对于多核或使用超线程技术的cpu,根据计数器求得的idle进程cpu占用比率将超过100%,此时应将idlecpu利用率/总的cpu利用率,所得作为真正的idlecpu利用率。

 

添加命名空间:

using System.Diagnostics;

.NET基础示例系列之十六:制做进程监视器

  代码下载

相关文章:

  • 2021-11-28
  • 2021-06-06
  • 2021-11-21
  • 2021-05-17
  • 2021-11-17
  • 2021-06-03
猜你喜欢
  • 2021-10-05
  • 2021-12-10
  • 2022-02-27
  • 2021-05-16
  • 2021-06-15
相关资源
相似解决方案