C# 访问WMI中的处理器数

C# 访问WMI中的处理器数,c#,wmi,C#,Wmi,我已经浏览了很多关于WMI的帖子,但仍然有一些问题。我想从WMI检索CPU使用情况,我的查询检索ManagementObjectSearcher必须提供的所有内容,但它返回null,并且从不返回任何信息 另外,对于我正在提取的数据类型,我应该使用int16吗 希望有人能在这件事上透露一些信息,并送我上路。谢谢 public void GetPhysicalMemory() { ManagementObjectSearcher mgtObj = new ManagementObjectSe

我已经浏览了很多关于WMI的帖子,但仍然有一些问题。我想从WMI检索CPU使用情况,我的查询检索ManagementObjectSearcher必须提供的所有内容,但它返回null,并且从不返回任何信息

另外,对于我正在提取的数据类型,我应该使用int16吗

希望有人能在这件事上透露一些信息,并送我上路。谢谢

public void GetPhysicalMemory()
{
    ManagementObjectSearcher mgtObj = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_ComputerSystem");   // Win32_OPeratingSystem");
    ManagementObjectCollection mgtColl = mgtObj.Get();

   // foreach (ManagementObject obj in  mgtObj.Get())
    if (mgtColl.Count != 0 )
    {
        foreach (ManagementBaseObject mgtBaseObj in mgtColl)
        {
            var[] data = mgtBaseObj["NumberOfProcessors"] as int16[];

            if (data != null)
            {
                Console.WriteLine(data);
            }
            else
            {
                Console.WriteLine("Collection = null");
                Console.Read();
                Console.Read();

            }
        }
    }

您可以使用变量直接迭代方法返回的集合,从这里可以访问。您可以使用item属性或通过[]符号访问每个属性

检查此示例应用程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Management;
using System.Text;

namespace ConsoleFoo
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                ManagementObjectSearcher mgtObj = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_ComputerSystem");
                foreach (ManagementObject item in mgtObj.Get())
                {
                    Console.WriteLine("Number Of Processors  {0}", item["NumberOfProcessors"]);
                }
            }
            catch (ManagementException e)
            {
                Console.WriteLine("Exception {0} ", e.Message);
            }
            Console.ReadKey();
        }
    }
}

你想得到处理器的数量还是CPU的使用率?实际上,我更想返回CPU的使用率,我在暗中尝试使用NumberOfProcessors来收回任何东西。你知道哪个集合包含CPU的使用率吗?你必须访问性能计数器,试着使用如下类