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
Console.WriteLine(Environment.ProcessorCount);
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
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)