平行的问题

时间:2010-08-19 17:20:15

标签: visual-studio-2010 parallel-processing

我有一个foreach循环,它从xmlnodelist处理几千个xmlnodes。我正在尝试集成.net 4中的Parallel.For选项,但是我得到一个错误,“方法没有重载'For'需要3个参数'。但是到目前为止我看到的每个例子都是这样写的。有人知道吗我需要改变什么才能编译?谢谢。

Parallel.For(0,jobs.Count,i => {   //..do在这里工作.. });

2 个答案:

答案 0 :(得分:1)

  

现在我唯一的另一个问题是如何突破当前的迭代?它似乎不喜欢我的继续声明。

当每个迭代可以同时运行时,您期望continue语句到底是如何工作的?您应该阅读MSDN上的How to: Stop or Break from a Parallel.For Loop了解有关此问题的详细信息,并查看StopBreak方法。

答案 1 :(得分:1)

  

现在我唯一的另一个问题是如何摆脱困境   目前的迭代?它似乎不喜欢我的继续声明。

而不是continue,请使用break。而不是:

for (int i = 1; i < jobs.Count; i++) {
    // Initialise iteration.
    if (iterationInvalid) continue;
    // Do work.
}

你真正得到的是:

for (int i = 1; i < jobs.Count; i++)
    action(i);

void action (int i) {
    // Initialise iteration.
    if (iterationInvalid) break;
    // Do work.
}