黑马程序员技术交流社区

标题: 如何使用.NET FrameWork获取CPU,内存使用率以及磁盘空间? [打印本页]

作者: shangxin    时间: 2014-3-15 21:53
标题: 如何使用.NET FrameWork获取CPU,内存使用率以及磁盘空间?
本帖最后由 shangxin 于 2014-3-16 21:48 编辑

如何使用.NET FrameWork获取CPU,内存使用率以及磁盘空间?请大家不吝赐教,谢谢!
作者: 许庭洲    时间: 2014-3-16 06:46
this.cpu = new PerformanceCounter("Processor","%Processor Time","_Total"); //初始化cpu和cinf变量
this.cinf = new ComputerInfo();
public double GetCpuPercent()  //获取占用CPU的百分比
{
     var percentage = this.cpu.NextValue():
     return Math.Round(percentage,2,MidpointRounding.AwayFromZero);
}
public double GetMemoryPercent()  //获取占用内存的百分比
{
     var usedMem = this.cinf.TotalPhysicalMemory - this.cinf.AvailablePhysicalMemory; //总内存减去可用的内存
     return Math.Round((double)(usedMem/Convert.ToDecimal(this.cinf.TotalPhysicalMemory)*100),2,MidpointRounding.AwayFromZero);
}
public HardDiskInfo GetHardDiskInfoByName(string diskName)//根据盘符获取磁盘信息
{
      DriveInfo drive = new DriveInfo(diskName);
      return new HardDiskInfo{ FereeSpace = GetDriveData(drive.AvailableFreeSpace), TotalSpace = GetDrieData(drive.TotalSizw),Name = drive.Name};
}
public IEnumerable<HardDiskInfo> GetAllHardDiskInfo() //获取所有驱动信息
{
      List<HardDiskInfo> list = new List<HardDiskInfo>();
      foreach(DriverInfo d in DriveInfo.GetDrives())
      {
              if(d.IsReady)
              {
                    list.Add(new HardDiskInfo{  Name = d.Name, FreeSpace = this.GetDriveData(d.AvailableFreeSpace),TotalSpace = this.GetDriveData(d.TotalSize)});
              }
       }
       return list;
}
private string GetDriveData(long data)//将磁盘大小的单位由byte转化为G
{
      return(data/Convert.ToDouble(1024)/Convert.ToDouble(1024)/Convert.ToDouble(1024).ToString("0.00");
}
calss HardDiskInfo//自定义类
{
     public string Name
     {
            get;
            set;
     }
     public string FreeSpace   
    {
            get;
            set;
     }
     public string TotalSpace   
     {
            get;
            set;
     }
}
作者: shangxin    时间: 2014-3-16 12:10
许庭洲 发表于 2014-3-16 06:46
this.cpu = new PerformanceCounter("Processor","%Processor Time","_Total"); //初始化cpu和cinf变量
thi ...

谢谢
我明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2