c# - 线程池 - 限制对某些方法的调用

标签 c# multithreading c#-4.0

有没有办法告诉线程池管理器只有 x 个线程调用特定方法或方法组?

我有一个应用程序,我在其中到处使用线程池工作线程,并且它运行顺畅;然而,我委托(delegate)给工作线程的任务之一是 Web 服务调用,它将拒绝超过 5 个并发请求。我不想将线程池限制为 5 个线程,因为许多其他东西使用线程并且可以处理更多线程。

有没有一种方法可以将线程池​​“划分”为“您将有最多 x 个线程在任何时间点激活执行此特定操作,但其余线程可以去做其他事情”?

最佳答案

使用信号量将对稀缺资源的访问限制为最大。 5.

信号量可以配置为只允许 N 个线程并发访问。您需要将信号量配置为 N=5,并让所有线程在调用 Web 服务之前等待它。

关于c# - 线程池 - 限制对某些方法的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10235562/

相关文章:

c# - 创建 RIA 服务 DomainContext 的最佳实践

XML 导航和读取使用 C# 4.0 动态?

c# - 在 MVC 中使用 HTML 按钮

c# - 带有 Id 的 GET 上的 OData ASP.Net Core?

c# - 线程引发事件被处理程序阻止?

python - Java Spring Boot 与 Python FastApi : Threads

css - ASP Repeater - 无法在 DIV 中添加类

c# - 在 P/Invoke 中为固定字符串传递什么?

c# - 我如何在 XNA 中将 sprite 着色为白色?

java - 锁定免费解决方案,同时从 map 中递增计数器,然后读取它