Heim >Backend-Entwicklung >C++ >Wie kann ich die Anzahl der physischen, Kern- und logischen Prozessoren in .NET/C# bestimmen?

Wie kann ich die Anzahl der physischen, Kern- und logischen Prozessoren in .NET/C# bestimmen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-18 20:01:12468Durchsuche

How Can I Determine the Number of Physical, Core, and Logical Processors in .NET/C#?

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

Einleitung:

Die Bestimmung der Anzahl der CPU-Kerne ist entscheidend für die Optimierung der Codeleistung und die Nutzung der Hardwarefunktionen. .NET und C# bieten verschiedene Techniken zum Abrufen dieser Informationen.

Prozessor und Kerne:

Verarbeiterbezogene Begriffe lauten wie folgt:

  • Physischer Prozessor: Der tatsächlich im System vorhandene CPU-Chip.
  • Kern: Eine einzelne Verarbeitungseinheit innerhalb eines physischen Prozessors.
  • Logische Prozessoren: Die Gesamtzahl der virtuellen Prozessoren, die dem Betriebssystem zur Verfügung stehen.

Diese Werte können variieren, insbesondere auf Systemen mit Multi-Core-Prozessoren und Hyper-Threading.

Ermitteln Sie die Anzahl der Kerne:

Physischer Prozessor:

Um die Anzahl der physischen Prozessoren zu ermitteln, verwenden Sie den folgenden Code:

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

Kern:

Um die Anzahl der Kerne zu ermitteln, verwenden Sie den folgenden Code:

<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>

Logischer Prozessor:

Die System.Environment-Klasse ermöglicht den direkten Zugriff auf die Anzahl der logischen Prozessoren:

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

Hinweis: Denken Sie daran, einen Verweis auf System.Management.dll in Ihr Projekt aufzunehmen.

Prozessoren in Windows ausschließen:

Es ist möglich, von Windows ausgeschlossene Prozessoren mithilfe der Windows-API zu erkennen, beispielsweise über die Boot-Einstellungen:

<code class="language-csharp">static void Main(string[] args)
{
    int deviceCount = 0;
    IntPtr deviceList = IntPtr.Zero;
    // ... (代码省略)
}</code>

Diese Methode bietet eine umfassendere Beschreibung der Gesamtzahl der im System vorhandenen Prozessoren.

Das obige ist der detaillierte Inhalt vonWie kann ich die Anzahl der physischen, Kern- und logischen Prozessoren in .NET/C# 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