首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF服务停止以派生线程

WCF服务停止以派生线程
EN

Stack Overflow用户
提问于 2011-02-04 02:16:19
回答 1查看 401关注 0票数 3

我在windows服务中托管了一个WCF服务,InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode = ConcurrencyMode.Multiple

使用listenbacklog="512“配置nettcp绑定,使用maxConcurrentCalls="512”配置服务行为。

服务器和客户端都运行在四核处理器上,不做任何其他事情。

我的测试客户端使用自动生成的代理,并在25个线程池线程上进行25个异步调用。尽管线程计数缓慢地增长到全部25个线程,但它会立即产生10个线程,然后每秒钟左右启动一个额外的线程。WCF服务器产生2-3个线程来服务请求。服务函数所做的工作只需要几百毫秒。完成所有客户端调用需要大约20秒的挂钟时间。

我已经分析了WCF服务器,它在ThreadStart_Context中花费了大部分时间调用waitone()

谁能告诉我为什么它这么慢?

EN

回答 1

Stack Overflow用户

发布于 2013-12-07 00:24:36

我认为这种行为的原因是WCF正在使用的ThreadPool。它不会太频繁地产生线程(达到最小值后每秒2个)。因此,您可以尝试增加ThreadPool的最小大小(不过,请先阅读此步骤的结果)。或者,您可以检查在这种情况下是否可以使用ThreadPool的替代品。

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

https://stackoverflow.com/questions/4889992

复制
相关文章

相似问题

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