码迷,mamicode.com
首页 > 其他好文 > 详细

获取cpu和内存使用情况

时间:2018-08-15 10:42:14      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:class   nim   directory   public   status   val   man   cond   信息   

public class SystemInfo
    {
        [DllImport("kernel32")]
        public static extern void GetSystemDirectory(StringBuilder SysDir, int count);
        [DllImport("kernel32")]
        public static extern void GetSystemInfo(ref CPU_INFO cpuinfo);
        [DllImport("kernel32")]
        public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
        [DllImport("kernel32")]
        public static extern void GetSystemTime(ref SYSTEMTIME_INFO stinfo);

        PerformanceCounter cpu; MEMORY_INFO MemInfo;

        public SystemInfo()
        {
            cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total");

            MemInfo = new MEMORY_INFO();
        }

        public float[] GetSystemInfo()
        {
            float[] ret = new float[2];
            
            GlobalMemoryStatus(ref MemInfo);
            ret[1] = MemInfo.dwMemoryLoad;
            ret[0] = cpu.NextValue();

            return ret;
        }
    }

    //定义CPU的信息结构  
    [StructLayout(LayoutKind.Sequential)]
    public struct CPU_INFO
    {
        public uint dwOemId;
        public uint dwPageSize;
        public uint lpMinimumApplicationAddress;
        public uint lpMaximumApplicationAddress;
        public uint dwActiveProcessorMask;
        public uint dwNumberOfProcessors;
        public uint dwProcessorType;
        public uint dwAllocationGranularity;
        public uint dwProcessorLevel;
        public uint dwProcessorRevision;
    }
    //定义内存的信息结构  
    [StructLayout(LayoutKind.Sequential)]
    public struct MEMORY_INFO
    {
        public uint dwLength;
        public uint dwMemoryLoad;
        public uint dwTotalPhys;
        public uint dwAvailPhys;
        public uint dwTotalPageFile;
        public uint dwAvailPageFile;
        public uint dwTotalVirtual;
        public uint dwAvailVirtual;
    }
    //定义系统时间的信息结构  
    [StructLayout(LayoutKind.Sequential)]
    public struct SYSTEMTIME_INFO
    {
        public ushort wYear;
        public ushort wMonth;
        public ushort wDayOfWeek;
        public ushort wDay;
        public ushort wHour;
        public ushort wMinute;
        public ushort wSecond;
        public ushort wMilliseconds;
    }

 

获取cpu和内存使用情况

标签:class   nim   directory   public   status   val   man   cond   信息   

原文地址:https://www.cnblogs.com/microstep/p/9479590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!