0

マルチソケットコンピュータにアクセスできないので、次のプロセッサと論理プロセッサの総計が得られるかどうかはわかりません。ManagementObjectSearcherがソケットされたCPUごとにインスタンスを返すと仮定し、現在の合計を保持しますか?

int totalCPUs = 0;
int totalLogicalCPUs = 0;

ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_ComputerSystem");
foreach (var mo in mos.Get())
{
    string num = mo.Properties["NumberOfProcessors"].Value.ToString();
    totalCPUs += Convert.ToInt32(num);


    num = mo.Properties["NumberOfLogicalProcessors"].Value.ToString();
    totalLogicalCPUs += Convert.ToInt32(num);
}
4

1 に答える 1

0

Win32_ComputerSystem のインスタンスを 1 つだけ返します。ドキュメントから:

コンピューター システムに 2 つの物理プロセッサがあり、それぞれに 2 つの論理プロセッサが含まれている場合、NumberOfProcessors の値は 2 で、NumberOfLogicalProcessors は 4 です。プロセッサはマルチコアの場合もあれば、ハイパースレッディング プロセッサの場合もあります。

于 2010-08-25T22:06:12.047 に答える