我有一个foreach循环,它从xmlnodelist处理几千个xmlnodes。我正在尝试集成.net 4中的Parallel.For选项,但是我得到一个错误,“方法没有重载'For'需要3个参数'。但是到目前为止我看到的每个例子都是这样写的。有人知道吗我需要改变什么才能编译?谢谢。
Parallel.For(0,jobs.Count,i => { //..do在这里工作.. });
答案 0 :(得分:1)
现在我唯一的另一个问题是如何突破当前的迭代?它似乎不喜欢我的继续声明。
当每个迭代可以同时运行时,您期望continue
语句到底是如何工作的?您应该阅读MSDN上的How to: Stop or Break from a Parallel.For Loop了解有关此问题的详细信息,并查看Stop和Break方法。
答案 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.
}