C#代码是冻结的形式,我错过了一个破碎的循环?

时间:2016-12-29 13:08:27

标签: c#

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());
    }

这是我的一些代码,我认为可能有错误,如果有人可以发现一个请告诉我。单击该按钮时,它会在标签上显示核心数,但随后冻结,谢谢。

1 个答案:

答案 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;
    }
}