Laden...

Anzahl an CPUs herrausfinden?

Erstellt von MS Master vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.377 Views
M
MS Master Themenstarter:in
132 Beiträge seit 2005
vor 16 Jahren
Anzahl an CPUs herrausfinden?

Hi all,

welche möglichkeiten habe ich, die Anzahl an CPUs, wobei mir hier die Anzahl der logischen reicht, herauszufinden.

Die frage wurde hier schonmal gestellt, nur leider nicht wirklich beantwortet.

Eine mögliche Lösung habe ich schon, aber ich hänge noch:


ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");
foreach (ManagementObject queryObj in searcher.Get())
{
blabla
}

Zwar kann ich so auf die einzelnen Elemente zugreifen, aber ich habe bisher nichts gefunden, mit dem ich im vorfeld die Anzahl der Treffer ermitteln könnte. Ich könnte zwar jetzt einen "Counter" bauen, der innerhalb der Schleife immer um eins höher zählt, aber ich hätte gerne die Anzahl der Treffer bereits VOR dem foreach.

Hat da jemand einen Tip für, den die Anzahl der gelieferten "Zeilen" entspricht ja dann der Anzahl der gefundenen Logischen CPUs.

Danke schonmal im vorraus für einen Tip.

mfg

MS Master

460 Beiträge seit 2004
vor 16 Jahren
Console.WriteLine(Environment.ProcessorCount);
M
MS Master Themenstarter:in
132 Beiträge seit 2005
vor 16 Jahren

Danke, passt.

Edit: Falls aber jemand auch noch weiß, wie man die Anzahl der Treffer der Suche im WMI rausfinden kann, würde mich das ebenfalls interessieren.

mfg

MS Master

3.511 Beiträge seit 2005
vor 16 Jahren

Die Anzahl der Prozessoren findet du im Pfad Win32_ComputerSystem.


ManagementObject mo = new ManagementObject("Win32_ComputerSystem.Name=\"[COMPUTERNAME]\"");

Console.WriteLine(mo["NumberOfProcessors"].ToString());

Oder du rufst einfach Count der zurückgelieferten ManagementObjectCollection des ManagementObjectSearcher ab. Also


ManagementObjectSearcher mos = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");

ManagementObjectCollection objs = mos.Get();
Console.WriteLine(objs.Count.ToString());

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)