2010-08-19 82 views
0

我有一個foreach循環,處理xmlnodelist中的幾千個xmlnode。我試圖集成.net 4中的Parallel.For選項,但是我得到一個錯誤:「沒有方法的重載」對於'需要3個參數'。但是我到目前爲止看到的每個例子都是這樣寫的。我需要改變,以得到這個編譯感謝parallel.for question

的Parallel.For(0,jobs.Count,I => { //..do這裏工作.. });?

+1

我想我想通了。我在這裏展示的示例代碼並不完全是我在實際代碼中所做的。我正在做Parallel.For (0,jobs.Count ....刪除類型參數工作。現在唯一的其他問題是我如何擺脫當前的迭代?它似乎並不喜歡我的繼續聲明。謝謝。 – 2010-08-19 17:23:23

回答

1

我現在唯一的另一個問題是如何突破目前的迭代?似乎並不喜歡我的繼續聲明。

當每個迭代可以同時運行時,您希望continue語句如何工作?您應該閱讀MSDN上的How to: Stop or Break from a Parallel.For Loop以瞭解關於此的更多信息,並查看StopBreak方法。

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. 
} 
+0

+1值得注意的是,Parallel.For中沒有實際的'break'(在正常意義上)能力.For – Seph 2011-11-03 11:35:22