Parallel.ForEach是否使用ASP.NET线程池中的线程?

时间:2017-03-15 20:58:23

标签: c# asp.net async-await task-parallel-library parallel.foreach

我已经读过在ASP.NET Web应用程序中使用Task.Run是个坏主意,因为它使用了线程池中的另一个线程,因此阻止了这个特定的线程用于提供请求。

Parallel.ForEach的情况不一样吗?它是否会使用线程池中的多个线程,从而阻止这些特定线程用于提供请求?

1 个答案:

答案 0 :(得分:6)

  

与Parallel.ForEach相同的问题是什么?不希望它使用线程池中的多个线程,从而阻止这些特定线程用于提供请求吗?

是的,它会的。这意味着您可以通过让请求使用这样的多个请求来降低服务器的总吞吐量。 个人请求将更快完成,但它会以其他请求为代价更快地完成

这也假设您的机器处于高负荷状态。如果线程池上没有足够高的负载,那么它可以为该请求专用更多资源而不会阻止其他请求的服务能力,并且为该请求专用更多资源可能会加速该请求