2016-12-29 43 views
2
private int coreCountNum() 
    { 
     int coreCount = 0; 
     foreach (var item in new System.Management.ManagementObjectSearcher("Select NumberOfCores from Win32_Processor").Get()) 
     { 
      coreCount += int.Parse(item["NumberOfCores"].ToString());  
     } 
     return coreCount; 
    } 
private void button1_Click(object sender, EventArgs e) 
    { 
     coreCount.Text = Convert.ToString(coreCountNum()); 
    } 

這是我的一些代碼,我認爲可能有一個錯誤,如果任何人都可以發現一個,請讓我知道。點擊按鈕後,它會在標籤上顯示核心數量,但會凍結,謝謝。C#代碼是凍結窗體,我錯過了一個循環?

+0

當你點擊的按鈕它凍結? – ivamax9

+1

當你調試哪一行產生凍結? – NicoRiff

+0

不,我點擊工作按鈕並在顯示的標籤上顯示正確數量的芯。之後,當它鎖定,這就是爲什麼我認爲我的循環是無用的。 –

回答

0

嘗試處置ManagementObjectSearcher明確

private int coreCountNum() 
{ 
    using(var searcher = new System.Management.ManagementObjectSearcher("Select NumberOfCores from Win32_Processor")) 
    { 
     int coreCount = 0; 
     foreach (var item in searcher.Get()) 
     { 
      coreCount += int.Parse(item["NumberOfCores"].ToString());  
     } 
     return coreCount; 
    } 
} 
+0

http://stackoverflow.com/a/2670568/2313116可能他已經從那裏複製它 – ivamax9