Web应用程序中的多线程(WCF / WebAPI)

时间:2013-08-24 09:49:15

标签: c# asp.net wcf iis asp.net-web-api

我想通过HTTP层(使用WebAPI / WCF托管)公开“引擎”。

该引擎对大量数据执行一些简单的只读操作,并且可以真正受益于并行性。从for(...)到Parallel.For(...)的简单切换确实很奇怪。

现在我认为我们不应该在Web服务器中进行这种多线程,所以我试图找出托管它的最佳方式。

理想情况下,我希望将此作为标准Web应用程序托管在IIS中,使用WebAPI或WCF。如果这不是一个好的解决方案,那么什么是一个好的选择呢?

在标准Windows服务中自行托管WebAPI或WCF会更好吗?我不确定这里的问题是IIS还是ASP.NET特有的。

或许这不是问题而我只是担心太多了?

任何投入都将受到赞赏。

由于

1 个答案:

答案 0 :(得分:0)

我不完全清楚你的担忧是什么,但我会尽力给你一些你可以决定的基础:

您可以安全地在IIS / ASP.NET中使用多线程。当然,对于许多并行请求您不需要,因为并行性发生在更高级别(事实上,尽管输出会略有受苦,但只是轻微)。虽然您可以在较低级别(Parallel.For)使用并行性来减少延迟,但几乎没有并行请求。

因此,ASP.NET中的多线程更多的是减少延迟而不是增加吞吐量。

我不知道自我托管会如何改变这一点。

你似乎有点担心这是一种可行的方法。尝试制定具体的问题,我会解决它们。