/// <summary> /// /Metoda zliczjąca liczbę fizycznych rdzeni i ich uwstawienie w setPhysicalProcessors /// </summary> /// <param name="physicalProcessorsLabel"> Label ustawiający liczbę fizycznych rdzenie w widoku</param> /// <returns> void </returns> public void CountPhysicalProcessors(Label physicalProcessorsLabel) { using (var moDisposer = new ManagementObjectDisposer()) // utworzzenie zminnej moDisposer dla obiektów zarządzanych ManagementObjectDisposer, aby można było jej usunąc { int physicalCores = 0; // zmienna na liczbę fizycznych rdzeni foreach (var item in moDisposer.Search("Select * from Win32_ComputerSystem")) // wykorzystanie zapytania w celu uzyskania z rejestru liczby fizycznych rdzeni { physicalCores += int.Parse(item["NumberOfProcessors"].ToString()); // liczba fizycznych rdzeni w postaci int item.Dispose(); // dealokacja zmiennej item, gdy jest zbedna } SetPhysicaProcessors(physicalProcessorsLabel, physicalCores); // ustawienie fizycznych procesorów w metodzie SetPhysicalProcessors } }
/// <summary> /// Metoda zliczająca liczbe rdzeni procesora i ustawiająca je w labelu CoresLabel /// </summary> /// <param name="CoresLabel"> Label odpowiadający za liczbę rdzeni w procesorze i ustawiający tę wartość w Labelu widoku</param> /// <returns> void </returns> public void CountCores(Label CoresLabel) { using (var disposer = new ManagementObjectDisposer()) // zmienna ManagmentObjectDisposer do tworzenia disposera dla klasy Manage { int coreCount = 0; // zmienna na ilość rdzeni procesora foreach (var item in disposer.Search("Select * from Win32_Processor")) // wykorzystanie zapytania w celu uzyskania z rejestru liczby rdzeni { coreCount += int.Parse(item["NumberOfCores"].ToString()); item.Dispose(); // liczba rdzenie w postaci int } // dealokacja obiektu typu item CoresLabel.Text = coreCount.ToString(); // ustawienie wartości rdzeni w labelu } }