gpt4 book ai didi

.net - WCF 服务停止以生成线程

转载 作者:行者123 更新时间:2023-12-02 12:22:21 25 4
gpt4 key购买 nike

我有一个托管在 Windows 服务中的 WCF 服务,InstanceContextMode = InstanceContextMode.Single,ConcurrencyMode = ConcurrencyMode.Multiple

nettcp 绑定(bind)配置为listenbacklog="512",服务行为配置为maxConcurrentCalls="512"

服务器和客户端都在四处理器机器上运行,不执行任何其他操作。

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

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

有人可以告诉我为什么这么慢吗?

最佳答案

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

关于.net - WCF 服务停止以生成线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4889992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com