Heim >Backend-Entwicklung >C++ >Wie kann ich die Anzahl der CPU-Kerne in meiner .NET/C#-Anwendung bestimmen?

Wie kann ich die Anzahl der CPU-Kerne in meiner .NET/C#-Anwendung bestimmen?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-18 19:57:09881Durchsuche

How Can I Determine the Number of CPU Cores in My .NET/C# Application?

Bestimmen Sie die Anzahl der CPU-Kerne in .NET/C#

Das Verständnis der Anzahl der verfügbaren CPU-Kerne ist entscheidend für die Optimierung der Ressourcennutzung für .NET/C#-Anwendungen. In diesem Artikel werden verschiedene Möglichkeiten zum Abrufen dieser Informationen untersucht, sodass Entwickler fundierte Entscheidungen über Multithreading und Leistungsoptimierung treffen können.

Physische Prozessoren, Kerne und logische Prozessoren

Es ist wichtig, zwischen der Anzahl der physischen Prozessoren, Kerne und logischen Prozessoren zu unterscheiden. Ein physischer Prozessor stellt die eigentliche Hardwareeinheit dar, während ein Kern eine einzelne Ausführungseinheit innerhalb des Prozessors ist. Ein logischer Prozessor ist eine virtualisierte Darstellung eines Kerns, die es dem Betriebssystem ermöglicht, Threads effizienter zu planen, indem es sie als separate Einheiten darstellt.

Anzahl der Kerne abrufen

In .NET/C# gibt es mehrere Möglichkeiten, die Anzahl der CPU-Kerne abzurufen.

Logischer Prozessor (Umgebungsklasse)

Die Environment-Klasse bietet Zugriff auf die Anzahl der logischen Prozessoren:

<code class="language-csharp">Console.WriteLine("逻辑处理器数量:{0}", Environment.ProcessorCount);</code>

Kern (WMI)

Mit WMI (Windows Management Instrumentation) können Sie die Anzahl der Kerne abrufen:

<code class="language-csharp">int coreCount = 0;
foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get())
{
    coreCount += int.Parse(item["NumberOfCores"].ToString());
}
Console.WriteLine("核心数量:{0}", coreCount);</code>

Physischer Prozessor (WMI)

In .NET Core können Sie die Anzahl der physischen Prozessoren mithilfe von WMI ermitteln:

<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get())
{
    Console.WriteLine("物理处理器数量:{0}", item["NumberOfProcessors"]);
}</code>

Ausgeschlossene Prozessoren in Windows (Windows-API)

Der Windows-API-Aufruf in setupapi.dll ermöglicht die Erkennung ausgeschlossener Prozessoren in Windows:

<code class="language-csharp">static void Main(string[] args)
{
    int deviceCount = 0;
    IntPtr deviceList = IntPtr.Zero;
    // 处理器类ID的GUID
    Guid processorGuid = new Guid("{50127dc3-0f36-415e-a6cc-4cb3be910b65}");
    ...
    Console.WriteLine("核心数量:{0}", deviceCount);
}</code>

Zusammenfassung

Dieser Artikel zeigt verschiedene Methoden zum Abrufen der Anzahl der CPU-Kerne in .NET/C#. Durch das Verständnis dieser Techniken können Entwickler die Ressourcennutzung optimieren, Thread-Arbeitslasten ausgleichen und die Anwendungsleistung verbessern.

Das obige ist der detaillierte Inhalt vonWie kann ich die Anzahl der CPU-Kerne in meiner .NET/C#-Anwendung bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn