Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Bilangan Teras CPU dalam .NET/C#?
Mendapatkan Kiraan Teras CPU menggunakan .NET/C#
.NET/C# menyediakan beberapa kaedah untuk mengenal pasti bilangan teras CPU yang tersedia pada sistem. Berikut ialah beberapa pendekatan:
1. Pemproses Fizikal:
Kaedah ini mengira bilangan pemproses fizikal yang dipasang.
<code class="language-csharp">foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_ComputerSystem").Get()) { Console.WriteLine($"Number of Physical Processors: {item["NumberOfProcessors"]}"); }</code>
2. Teras setiap Pemproses:
Pendekatan ini menjumlahkan kiraan teras merentas semua pemproses.
<code class="language-csharp">int totalCores = 0; foreach (var item in new System.Management.ManagementObjectSearcher("Select * from Win32_Processor").Get()) { totalCores += int.Parse(item["NumberOfCores"].ToString()); } Console.WriteLine($"Total Number of Cores: {totalCores}");</code>
3. Pemproses Logik:
Ini mengakses terus jumlah bilangan pemproses logik (termasuk hyperthreading).
<code class="language-csharp">Console.WriteLine($"Number of Logical Processors: {Environment.ProcessorCount}");</code>
4. Pemproses (tidak termasuk yang disembunyikan oleh Windows):
Kaedah ini mengambil kira pemproses yang mungkin dikecualikan daripada pelaporan Windows standard. Ia memerlukan penggunaan API Persediaan.
<code class="language-csharp">int processorCount = 0; IntPtr deviceList = IntPtr.Zero; Guid processorGuid = new Guid("{50127dc3-0f36-415e-a6cc-4cb3be910b65}"); try { deviceList = SetupDiGetClassDevs(ref processorGuid, "ACPI", IntPtr.Zero, (int)DIGCF.PRESENT); for (int deviceNumber = 0; ; deviceNumber++) { SP_DEVINFO_DATA deviceInfo = new SP_DEVINFO_DATA(); deviceInfo.cbSize = Marshal.SizeOf(deviceInfo); if (!SetupDiEnumDeviceInfo(deviceList, deviceNumber, ref deviceInfo)) { processorCount = deviceNumber; break; } } } finally { if (deviceList != IntPtr.Zero) { SetupDiDestroyDeviceInfoList(deviceList); } } Console.WriteLine($"Number of Cores (including hidden): {processorCount}");</code>
Pertimbangan Penting:
System.Management.dll
dalam projek anda.Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Bilangan Teras CPU dalam .NET/C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!