检查并编辑流程逻辑计数+失败证明

时间:2013-08-11 05:41:12

标签: c#

我已创建此代码,但尝试向其添加更多功能

public static int HowManyCores()
{
   int CoresNumber = Environment.ProcessorCount;
    try
    {
        return CoresNumber;
    }
    catch
    {
        return CoresNumber = 2;
    }
}

如果因任何原因失败,我希望函数返回“2”。另外我想返回CoresNumber -1(所以如果它找到4它返回3)也是另一种情况:如果CoresNumer小于2(包括)返回2.

3 个答案:

答案 0 :(得分:1)

删除try catch并使用

return CoresNumber > 2 ? CoresNumber - 1 : 2; 

答案 1 :(得分:1)

正如瓦迪姆所说,它不会抛出异常。所以你可以试试:

public static int GetCoreCount()
{
    int cores = Environment.ProcessorCount;

    if (cores <= 2) { return 2; }
    else { return cores - 1; }
}

答案 2 :(得分:0)

我可以给你这个代码:

public static int HowManyCores()
{
    int CoresNumber = -1;
    try
    {
        CoresNumber = Environment.ProcessorCount;
        if (CoresNumber <= 2) { CoresNumber = 2; }
    }
    catch
    {
        // Log maybe
    }

    return CoresNumber;
}

虽然你可以阅读here它不应该抛出任何异常