我有一个.NET库,它在内部使用ParallelQueryable和Parallel.ForEach来并行化计算。
现在,WebApi应用程序正在使用该库。我知道WebApi使用异步上下文来阻止对当前请求的并发访问。我的问题是,WebApi对此上下文的使用是否会以任何方式影响库的内部并行计算(例如,是否必须在“GUI”线程上执行连续性?)?
答案 0 :(得分:0)
如果TPL表现得像你描述的那样,那就没有多大意义了。 PLINQ和Parallel.ForEach()
的重点是并行执行代码。使用同步上下文(在ASP.NET或GUI应用程序中)执行这些Task
将意味着它们不会并行执行。因此,PLINQ,Parallel.ForEach()
和Task.Run()
不使用同步上下文。