打赏

C#获取CPU处理器核心数量的方法_C#教程

https://yq.aliyun.com/ziliao/89096

摘要: 本文讲的是C#获取CPU处理器核心数量的方法_C#教程, 有几条不同的处理器信息,您可以获得有关的信息:物理处理器数量、核心数量和逻辑处理器数量,这些可以不同。两颗双核超线程(启用)处理器的机器情况下有:2个物理处理器、4个核心和8个逻辑处理器。 逻辑处理器数是可

有几条不同的处理器信息,您可以获得有关的信息:物理处理器数量、核心数量和逻辑处理器数量,这些可以不同。两颗双核超线程(启用)处理器的机器情况下有: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"]); }

 

// 当前计算机上的处理器数量
int processorCount = Environment.ProcessorCount;
int minWorkThreadCount = processorCount * 4;
int minIOWorkThreadCount = processorCount * 2;
//int minWorker, minIOC;
// Get the current settings.
// ThreadPool.GetMinThreads(out minWorker, out minIOC);
// Change the minimum number of worker threads to 300, I/O threads to 200
ThreadPool.SetMinThreads(minWorkThreadCount, minIOWorkThreadCount);

posted @ 2018-08-21 09:43  刘奇云  阅读(8147)  评论(0编辑  收藏  举报