首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS和Parallel.ForEach

IIS和Parallel.ForEach
EN

Stack Overflow用户
提问于 2012-08-08 16:30:32
回答 1查看 1.5K关注 0票数 3

我在互联网信息系统中托管的WCF服务上使用Parallel.ForEach。

据我所知,对于并行循环中的每个任务,线程都会被打开。

但是IIS对可以打开的线程数有限制。我想是20岁。

所以我的问题是:是否建议在IIS进程上使用Parallel.ForEach?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 16:56:51

据我所知,在IIS中使用TPL时有一些问题。

首先,IIS对其线程池中的线程没有硬性限制。这实际上取决于线程在做什么(CPU绑定、IO绑定等)。因此,线程的数量本身并不重要。

其次,据我所知,TPL将从线程池中获取线程。因此,实际上,您正在获取可用于服务请求的线程。同样,这可能是不好的,取决于你消耗了多少流量。

第三,IIS应用程序池将回收。当这种情况发生时,据我所知,IIS将冻结线程的状态,并将它们移动到另一个进程。这可能对线程操作产生意想不到的影响。

通常,您希望使用第三方物流(Parallel.ForEach),因为您有一个长时间运行的进程。对于长时间运行的进程,调用另一个主机(Windows服务)来完成繁重的任务可能会更好。例如,在Windows服务中,您可以更好地控制如何管理线程。

希望这能有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11860618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档