C# 获取内存和CPU信息的代码

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
获取cpu信息
using System.Collections;
using System.Collections.Generic;
using System.Management;
using System.Text;

namespace MergeSystem.Indexus.WinServiceCommon.SystemManagement
{
    /// <summary>
    /// Represents the CPU scope information
    /// </summary>
    public class Cpu
    {
        public static void LogCpuData()
        {
            System.Collections.ArrayList result = new System.Collections.ArrayList();
            ManagementScope mgmtScope = new ManagementScope(@"/. ootcimv2");
            mgmtScope.Connect();

            ManagementPath mp = new ManagementPath("Win32_Processor");
            ManagementClass mc = new ManagementClass(mgmtScope, mp, null);
            ManagementObjectCollection procs = mc.GetInstances();

            foreach (ManagementObject mo in procs)
            {
                foreach (PropertyData pd in mo.Properties)
                {
                    switch (pd.Name)
                    {
                        case "DeviceID":
                        case "Name":
                        case "LoadPercentage":
                            Console.WriteLine(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim());
                            Handler.LogHandler.Info(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                            Handler.LogHandler.MemoryFatalException(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));

                            break;
                    }
                }
                Console.WriteLine(@" --- ");
                Handler.LogHandler.Info(@" --- ");
            }
        }
    }
}
 
获取内存信息
using System;
using System.Collections;
using System.Collections.Generic;
using System.Management;
using System.Text;

namespace MergeSystem.Indexus.WinServiceCommon.SystemManagement
{
    /// <summary>
    /// Represents the Memory scope information
    /// </summary>
    public class Memory
    {

        public static void LogMemoryData()
        {
            ManagementScope mgmtScope = new ManagementScope(@"/. ootcimv2");
            mgmtScope.Connect();

            ManagementPath mp = new ManagementPath("Win32_OperatingSystem");
            ManagementClass mc = new ManagementClass(mgmtScope, mp, null);
            ManagementObjectCollection procs = mc.GetInstances();

            foreach (ManagementObject mo in procs)
            {
                foreach (PropertyData pd in mo.Properties)
                {
                    switch (pd.Name)
                    {
                        case "BuildNumber":
                        case "BuildType":
                        case "Caption":
                        case "CountryCode":
                        case "CSDVersion":
                        case "CSName":
                        case "CurrentTimeZone":
                        case "FreePhysicalMemory":
                        case "FreeSpaceInPagingFiles":
                        case "FreeVirtualMemory":
                        case "LastBootUpTime":
                        case "MaxNumberOfProcesses":
                        case "MaxProcessMemorySize":
                        case "NumberOfProcesses":
                        case "NumberOfUsers":
                        case "Organization":
                        case "OSLanguage":
                        case "RegisteredUser":
                        case "SerialNumber":
                        case "ServicePackMajorVersion":
                        case "ServicePackMinorVersion":
                        case "SizeStoredInPagingFiles":
                        case "SystemDevice":
                        case "SystemDirectory":
                        case "SystemDrive":
                        case "TotalVirtualMemorySize":
                        case "TotalVisibleMemorySize":
                        case "Version":
                        case "WindowsDirectory":
                            Console.WriteLine(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim());
                            Handler.LogHandler.Info(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                            Handler.LogHandler.MemoryFatalException(string.Format(@"Name: {0}; Value: {1}", pd.Name, pd.Value == null ? string.Empty : pd.Value.ToString().Trim()));
                            break;
                    }                    
                }
                Console.WriteLine(@" --- ");
                Handler.LogHandler.Info(@" --- ");
            }

        }
    }
}
 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C#常用操作

下一篇:C#进行INI文件的读写操作