我有一個foreach循環,處理xmlnodelist中的幾千個xmlnode。我試圖集成.net 4中的Parallel.For選項,但是我得到一個錯誤:「沒有方法的重載」對於'需要3個參數'。但是我到目前爲止看到的每個例子都是這樣寫的。我需要改變,以得到這個編譯感謝parallel.for question
的Parallel.For(0,jobs.Count,I => { //..do這裏工作.. });?
我有一個foreach循環,處理xmlnodelist中的幾千個xmlnode。我試圖集成.net 4中的Parallel.For選項,但是我得到一個錯誤:「沒有方法的重載」對於'需要3個參數'。但是我到目前爲止看到的每個例子都是這樣寫的。我需要改變,以得到這個編譯感謝parallel.for question
的Parallel.For(0,jobs.Count,I => { //..do這裏工作.. });?
我現在唯一的另一個問題是如何突破目前的迭代?似乎並不喜歡我的繼續聲明。
當每個迭代可以同時運行時,您希望continue
語句如何工作?您應該閱讀MSDN上的How to: Stop or Break from a Parallel.For Loop以瞭解關於此的更多信息,並查看Stop和Break方法。
現在唯一的其他問題是我如何擺脫當前迭代 ?它似乎不喜歡我的繼續發言。
而不是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值得注意的是,Parallel.For中沒有實際的'break'(在正常意義上)能力.For – Seph 2011-11-03 11:35:22
我想我想通了。我在這裏展示的示例代碼並不完全是我在實際代碼中所做的。我正在做Parallel.For(0,jobs.Count ....刪除類型參數工作。現在唯一的其他問題是我如何擺脫當前的迭代?它似乎並不喜歡我的繼續聲明。謝謝。 –
2010-08-19 17:23:23