我想通过HTTP层(使用WebAPI / WCF托管)公开“引擎”。
该引擎对大量数据执行一些简单的只读操作,并且可以真正受益于并行性。从for(...)到Parallel.For(...)的简单切换确实很奇怪。
现在我认为我们不应该在Web服务器中进行这种多线程,所以我试图找出托管它的最佳方式。
理想情况下,我希望将此作为标准Web应用程序托管在IIS中,使用WebAPI或WCF。如果这不是一个好的解决方案,那么什么是一个好的选择呢?
在标准Windows服务中自行托管WebAPI或WCF会更好吗?我不确定这里的问题是IIS还是ASP.NET特有的。
或许这不是问题而我只是担心太多了?
任何投入都将受到赞赏。
由于
答案 0 :(得分:0)
我不完全清楚你的担忧是什么,但我会尽力给你一些你可以决定的基础:
您可以安全地在IIS / ASP.NET中使用多线程。当然,对于许多并行请求您不需要,因为并行性发生在更高级别(事实上,尽管输出会略有受苦,但只是轻微)。虽然您可以在较低级别(Parallel.For
)使用并行性来减少延迟,但几乎没有并行请求。
因此,ASP.NET中的多线程更多的是减少延迟而不是增加吞吐量。
我不知道自我托管会如何改变这一点。
你似乎有点担心这是一种可行的方法。尝试制定具体的问题,我会解决它们。