ControllerContext在mvc c中的Parallel.ForEach中抛出错误#

时间:2017-04-05 12:49:39

标签: c# asp.net-mvc

我有返回字符串的函数,它有ControllerContext的参数,这是抛出错误

这是代码

        var cContext = ControllerContext;

       Parallel.ForEach(listInvHeaderIDs, x =>         
       {

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

       }

我们可以在Parallel.Foreach中使用 ControllerContext ,如果不是使用什么

1 个答案:

答案 0 :(得分:-1)

您可以尝试Parallel.ForEach的重载:

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

使用foreach上的线程局部数据执行IEnumerable操作,其中迭代可以并行运行,并且可以监视和操作循环的状态。

使用示例:

<强> UDPATE 我已经更新了这个例子,现在应该没问题了。

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