Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查并编辑过程逻辑计数+;防故障_C# - Fatal编程技术网

C# 检查并编辑过程逻辑计数+;防故障

C# 检查并编辑过程逻辑计数+;防故障,c#,C#,我已经创建了这段代码,但正在尝试向其中添加更多的函数 public static int HowManyCores() { int CoresNumber = Environment.ProcessorCount; try { return CoresNumber; } catch { return CoresNumber = 2; } } 如果由于任何原因失败,我希望函数返回“2”。此外,我还想返回core

我已经创建了这段代码,但正在尝试向其中添加更多的函数

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

如果由于任何原因失败,我希望函数返回“2”。此外,我还想返回coresumber-1(因此,如果它找到4,它将返回3)另一种情况:如果coresumber小于2(包括),则返回2

取下试扣并使用

return CoresNumber > 2 ? CoresNumber - 1 : 2; 

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

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

    if (cores <= 2) { return 2; }
    else { return cores - 1; }
}
public static int GetCoreCount()
{
int cores=Environment.ProcessorCount;

如果(cores我可以给你这个代码:

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

    return CoresNumber;
}
publicstaticinthowmanycores()
{
int CoresNumber=-1;
尝试
{
CoresNumber=Environment.ProcessorCount;

如果(CoresNumber)计算变量的return语句永远不会失败,那么没有理由用try来包装它exception@Vadim在某些PC中,此函数不可能无法返回逻辑进程号?这很好:)@PeakDermutag,我只是说一旦你有了int,返回它不会失败。设置它可能会失败。@Vadim啊,所以我把try-catch-all设置错了:)因此,我将在
环境中设置它。ProcessorCount
谢谢!它在windows xp上工作吗?我在链接平台上看不到它:因此,如果操作系统不受支持,try catch可以用于设置值?@PeakDermutag在我在MSDN上读到的内容之上进行快速搜索,结果显示它总是返回值,而我没有发现任何异常关于…它在windows xp上工作吗?我在链接平台上看不到它:因此,如果操作系统不受支持,try catch可用于设置值。我测试了你的代码。它在windows 8上工作。如果功能不工作,我们可以为它添加一些catch吗?我希望有一些值,否则我的程序将失败。。。