有没有办法通过.NET/C#找出CPU内核的数量?
PS这是一个直接的代码问题,而不是"我应该使用多线程吗?" 题!:-)
我需要一种可靠的方法来检测计算机上有多少CPU核心.我正在创建一个数字密集的模拟C#应用程序,并希望创建最大数量的运行线程作为核心.我已经尝试了许多围绕互联网建议的方法,比如Environment.ProcessorCount,使用WMI,这段代码:http://blogs.adamsoftware.net/Engine/DeterminingthenumberofphysicalCPUsonWindows.aspx 他们似乎都不认为AMD X2有两个内核.有任何想法吗?
编辑:似乎Environment.ProcessorCount返回正确的数字.它位于具有超线程的英特尔CPU上,返回错误的数字.超线程的核心是2,当它应该只有1时.