【问题标题】:.NET ThreadPool and Configuration.NET 线程池和配置
【发布时间】:2011-09-20 21:39:59
【问题描述】:

第一个问题,ThreadPool 是进程级别的配置吗?如果我在一个进程中更改线程池配置,是否会影响其他 .NET 进程?

第二个问题,如果我想拥有多个线程池(一个线程池在应用程序的一个组件中具有 5 个线程,一个线程池在另一个组件中具有 2 个线程)如何配置它们或使用什么作为替代方案?

感谢您的帮助

【问题讨论】:

  • “每个进程有一个线程池”:msdn.microsoft.com/en-us/library/…。我非常怀疑每个组件需要单独的池。你的用例是什么?
  • 我没有具体案例,只是想知道这是否是思考 ThreadPools 的正确方式,但是我认为您是正确的,我应该可以使用 99% 的线程池时间。如果我需要更多控制,我可以手动生成线程。

标签: .net multithreading threadpool


【解决方案1】:

正如您所注意到的,您无法从全局机器配置文件 (machine.config) 或应用程序级配置文件(对于 ASP.NET 应用程序的 app.config 或 web.config)更改 ThreadPool 配置。

正如here 解释的那样,您可以通过代码来完成,最终手动从配置文件中读取设置。

这意味着在运行时以这种方式完成的更改仅限于您的应用程序,肯定不会跨越同一服务器或机器上的其他正在运行的进程。

【讨论】:

  • 您可以从全局配置(machine.config)中为标准线程池和IO线程池设置min/max。 msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx
  • @Arical - 该设置仅适用于 ASP.NET,不适用于任何 .NET 进程。例如,它不会影响控制台程序或 Windows 服务。
猜你喜欢
  • 2021-02-20
  • 2011-04-08
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
相关资源
最近更新 更多