Parallel.For(0, r1.LastCol, (i, loopState) =>
{ var item = myType.GetProperty(r1.getText(0, i));
if (item == null)
{
loopState.Stop();
break;
}
if (item.Name.Contains("比例"))
{
http://msdn.microsoft.com/zh-cn/library/dd460721.aspx
{ var item = myType.GetProperty(r1.getText(0, i));
if (item == null)
{
loopState.Stop();
break;
}
if (item.Name.Contains("比例"))
{
http://msdn.microsoft.com/zh-cn/library/dd460721.aspx
{ var item = myType.GetProperty(r1.getText(0, i));
if (item == null)
{
loopState.Stop();
return; //写错了 - -!
}
if (item.Name.Contains("比例"))
{
不是退出循环.
return; 更不行.已是退出方法了.
{ var item = myType.GetProperty(r1.getText(0, i));
if (item != null && item.Name.Contains("比例"))
这样不行吗?
Parallel.For(0, r1.LastCol % 4 == 0 ? 4 : 5 , (i, loopState) =>
{
for (int j = i * r1.LastCol / 4; j < (i + 1) * r1.LastCol / 4; j++)
{
...
}
});如果你希望中断循环,可以使用一个共享变量
stop = false;
Parallel.For(0, r1.LastCol % 4 == 0 ? 4 : 5 , (i, loopState) =>
{
for (int j = i * r1.LastCol / 4; j < (i + 1) * r1.LastCol / 4 && !stop; j++)
{
...
if (...) stop = true;
}
});
这个是多线程啊又不是一个线程内进行for循环。。你的break,continue什么的怎么可能起作用另外如果像#8楼说的那样控制,那stop = false;这个要通过那个InterLock类似的方法来进行线程间安全控制