我试图做一个简单的并行。因为它似乎正在变得相同"我"一遍又一遍。
我的代码是:
String[] str = new String[10000];
Parallel.For(0,10000, i=>
{
if(str[i] == string.Empty)
str[i] = "ok";
else
str[i] = "SameValue";
});
我希望它永远不会到达"否则"
答案 0 :(得分:3)
string.Empty
不等于null
,将您的if条件更改为
if (String.IsNullOrEmpty(str[i]))
答案 1 :(得分:2)
我希望它永远不会得到“其他”
错误 - 字符串数组元素使用null
(其默认值作为引用类型)进行初始化 - 而不是string.Empty
。因此仅 else
部分被执行。
您可以通过在if
声明中设置断点来轻松验证这一点。