【问题标题】:What is the 'ctr' variable in a parallel C# loop? [duplicate]并行 C# 循环中的“ctr”变量是什么? [复制]
【发布时间】:2021-05-15 14:35:08
【问题描述】:

我最近在一个小型 C# 程序中使用了一个 Parallel.For 循环(参见下面的代码),我对 ctr 变量感到有些困惑。到目前为止,我看到的每个示例都将此变量的名称设置为 ctr,但我似乎找不到任何好的资源来说明它的含义或为什么使用 this 名称。

如果有人知道更多,我会很高兴听到它!

public static int[] calcArray(int[] arrName, int arrSize, int seed)
{
    Parallel.For(0, arrSize, ctr =>
   {
       arrName[ctr] = AllfunctionsClass.Random(seed);
       seed++;
   });
    return arrName;
}

【问题讨论】:

  • 据我所知,它代表“计数器”。这就像通用 for 循环中的“i”。你可以随便叫它。
  • Lambda expressions (C# reference): "要创建 lambda 表达式,您在 lambda 运算符的左侧指定输入参数(如果有),在另一侧指定表达式或语句块。 " 这里与循环的int索引相同:Parallel.For

标签: c# function loops parallel-processing variable-names


【解决方案1】:

当前索引值.. 想象一个普通的 for 循环

for (int ctr=0; ctr < arraySize; ctr++)
{
    // ctr is the current value between 0 and arraySize-1
}

在这种情况下选择的变量名是任意的,可能是 counter 的缩写。恕我直言,变量名称应该很少被缩写,并且应该清楚它们代表什么,例如arrayPosition 或 position 或 index 或类似的东西

【讨论】:

    猜你喜欢
    • 2020-12-24
    • 2011-03-14
    • 2018-10-13
    • 2018-01-24
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    相关资源
    最近更新 更多