Parallel.For循环相同的值

时间:2012-03-15 15:41:19

标签: c# for-loop parallel-processing

我试图做一个简单的并行。因为它似乎正在变得相同"我"一遍又一遍。
我的代码是:

String[] str = new String[10000];

Parallel.For(0,10000, i=>

{

if(str[i] == string.Empty)

   str[i] = "ok";

else

   str[i] = "SameValue";

});

我希望它永远不会到达"否则"

2 个答案:

答案 0 :(得分:3)

string.Empty不等于null,将您的if条件更改为

if (String.IsNullOrEmpty(str[i]))

答案 1 :(得分:2)

  

我希望它永远不会得到“其他”

错误 - 字符串数组元素使用null(其默认值作为引用类型)进行初始化 - 而不是string.Empty。因此 else部分被执行。

您可以通过在if声明中设置断点来轻松验证这一点。