2017-04-05 80 views
0

我有函數返回字符串,它有ControllerContext的參數,這是拋出錯誤ControllerContext在MVC C#拋出錯誤Parallel.ForEach

這裏是代碼

 var cContext = ControllerContext; 

     Parallel.ForEach(listInvHeaderIDs, x =>   
     { 

     body = new myClass().myFunctionReturnString(cContext); 

     } 

我們可以使用ControllerContext在Parallel.Foreach如果不是使用什麼

+1

什麼是錯誤? – Luke

+0

'ControllerContext'甚至線程安全嗎? – DavidG

+0

錯誤 - 對象引用未設置爲對象的實例 – satyender

回答

-1

你也許可以試試這個超載的Parallel.ForEach

public static ParallelLoopResult ForEach<TSource, TLocal>(IEnumerable<TSource> source, 
     Func<TLocal> localInit, Func<TSource, ParallelLoopState, TLocal, TLocal> body, 
     Action<TLocal> localFinally) 

執行具有上IEnumerable線程局部數據,其中迭代可以並行地運行一個foreach操作,並且在循環的狀態下可被監測和操縱。

用法的例子:

UDPATE 我已經更新的例子,現在應該沒問題。

Parallel.ForEach(listInvHeaderIDs,() => {return cContext; }, 
(listId, loopInfo, ctrlContext) =>    
{ 
    body = new myClass().myFunctionReturnString(ctrlContext); 
    return ctrlContext; 
}, 
(ctrlContext) => { /*access controller context if needed...*/}); 
+0

沒有看到OP看到什麼錯誤,這個答案是純粹的猜測。 – DavidG

+0

其給出錯誤委託'動作'不接受0參數 – satyender