C# 如何查找CPU 内核数量?

嗨,

C#怎么找出 CPU 内核的数量吗?

谢谢 !

PS 这不是提问直代码一"我应该使用多线程吗?"的问题 !:-)

EntestySist -
共有3个回答
  • maoji.ecai - 1年前

    Environment.ProcessorCount 应该给你核心的数量,在本地计算机上。

  • Bambovaleen - 1年前

    Environment.ProcessorCount
    

    [文件]

  • sallimichegani - 1年前

    有几条不同处理器,您可以获得有关的信息: 物理处理器、 芯数、 逻辑处理器数的数字。这些可以不同 ;2 颗双核超线程-启用的处理器机器的情况下有 2 个物理处理器、 4 的核心和 8 个逻辑处理器。

    逻辑处理器数是可通过在 Environment 的类,但其他信息都是只可通过 WMI (和您可能需要安装一些 修补程序或服务包,以获取它在某些系统上):

    物理处理器:

    foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
    {
        Console.WriteLine("Number Of Physical Processors: {0} ", item["NumberOfProcessors"]);
    }
    

    内核:

    int coreCount = 0;
    foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
    {
        coreCount += int.Parse(item["NumberOfCores"].ToString());
    }
    Console.WriteLine("Number Of Cores: {0}", coreCount);
    

    逻辑处理器:

    Console.WriteLine("Number Of Logical Processors: {0}", Environment.ProcessorCount);
    

    foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
    {
        Console.WriteLine("Number Of Logical Processors: {0}", item["NumberOfLogicalProcessors"]);
    }