//PCが持つCPU情報を取得する
public ProcessorInfo[] GetProcessorInfos()
{
//インスタンスの数はシステム上で使用可能な物理プロセッサの数と同じ
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
int numofPhysicalProc = moc.Count;
ProcessorInfo[] procInfos = new ProcessorInfo[numofPhysicalProc];
int idx = 0;
foreach (ManagementObject mo in moc)
{
int core = Convert.ToInt32(mo.GetPropertyValue("NumberOfCores"));
int logProc = Convert.ToInt32(mo.GetPropertyValue("NumberOfLogicalProcessors"));
procInfos[idx++] = new ProcessorInfo(core, logProc, numofPhysicalProc);
}
return procInfos;
}