1

このコードを作成しましたが、さらに機能を追加しようとしています

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

何らかの理由で失敗した場合、関数が「2」を返すようにします。また、CoresNumber -1 を返したい (したがって、4 が見つかった場合は 3 を返します) また、別のケース: CoresNumer が 2 未満 (含む) の場合は 2 を返します。

4

3 に答える 3

1

try catch を削除して使用する

return CoresNumber > 2 ? CoresNumber - 1 : 2; 
于 2013-08-11T05:46:06.090 に答える
1

Vadim が述べたように、例外はスローされません。だからあなたは試すことができます:

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

    if (cores <= 2) { return 2; }
    else { return cores - 1; }
}
于 2013-08-11T05:47:15.140 に答える
0

私はあなたにこのコードを与えることができます:

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

    return CoresNumber;
}

ここで、例外をスローしないことを読むことができますが

于 2013-08-11T05:49:13.097 に答える