параллельный вопрос - PullRequest
       13

параллельный вопрос

0 голосов
/ 19 августа 2010

У меня есть цикл foreach, который обрабатывает несколько тысяч xmlnodes из xmlnodelist. Я пытаюсь интегрировать параметры Parallel.For из .net 4, но получаю сообщение об ошибке: «Нет перегрузки для метода« For », требуется 3 аргумента». Но каждый пример, который я вижу до сих пор, написан таким образом. Кто-то знает что мне нужно изменить, чтобы получить это для компиляции? Спасибо.

Parallel.For (0, jobs.Count, i => { //..действую здесь .. });

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Теперь у меня есть еще один вопрос: как мне выйти из текущей итерации?Кажется, мне не нравятся мои заявления о продолжении.

Вместо 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.
}
1 голос
/ 20 августа 2010

Теперь у меня есть еще один вопрос: как мне выйти из текущей итерации?Кажется, мне не нравятся мои операторы continue.

Как именно вы ожидаете, что continue операторы будут работать, когда каждая итерация может выполняться одновременно?Вы должны прочитать Как: остановить или прервать параллель. Для цикла на MSDN для получения дополнительной информации об этом и взгляните на Stop и Break методы.

...