是否可以在ASP.NET 4中执行并发处理?

时间:2011-02-19 10:18:07

标签: asp.net visual-studio-2010 c#-4.0 parallel-processing plinq

我想问你是否可以在ASP.NET 4中使用并行编程?例如PLINQ。

(因为现在所有托管服务器都是多核的,它会提供更好的性能吗?)

2 个答案:

答案 0 :(得分:2)

是的,这是可能的。但毫无疑问,在大多数情况下这是有道理的。 ASP.NET已经高度并行化,因为每个请求都在它自己的线程中工作。如果你分离其他线程来完成一些工作,那将会产生开销。这种开销会减慢处理其他请求的其他线程的速度。然后,在同步结果以完成请求时,您将引入另一个开销。此开销也可能会减慢回复请求所需的时间。

可能存在实际上有助于提高整体表现的情况,但我认为一般情况下它并不值得。

当然,只有两种方法的压力测试才能确保它与PLINQ一起使用效率更高或不使用它。

答案 1 :(得分:1)

答案是肯定的。

为什么你会这么想? (因此有讽刺的评论。)

注意,除非您采取特殊步骤,否则每个HTTP请求都需要在开始提供它的线程上完成。特殊步骤涉及告诉ASP.NET对页面使用异步处理,这允许创建响应并在不同的线程上完成请求(可能,中间处理其他线程)。如果您从请求的原始线程中使用TPL(包括PLINQ),这不是问题。