2011-09-20 94 views
2

第一个问题是进程级别的ThreadPool配置?如果我在一个进程中更改线程池配置,是否会影响其他.NET进程?第二个问题,如果我想有多个ThreadPools(一个线程池中有5个线程在应用程序的一个组件中,一个线程池中有2个线程在另一个组件中)如何配置它们或使用什么作为替代方案?.NET线程池和配置

感谢您的帮助

+1

“每个进程有一个线程池”:http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx。我非常怀疑你需要每个组件单独的池。你的用例是什么? –

+0

我没有具体的案例,只是想知道这是否是一种正确的思考ThreadPools的方式,但是我认为你是正确的,我应该在99%的时间内使用一个线程池。如果我需要更多的控制,我可以手动产生线程。 –

回答

1

正如你已经注意到了,你不能在ThreadPool配置从全球机配置文件(Machine.config)或应用程序级别的配置文件(的app.config或web.config中的ASP.NET改变应用)。

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

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

+0

您可以从全局配置(machine.config)中为标准线程池和IO线程池设置最小/最大值。 http://msdn.microsoft.com/en-us/library/7w2sway1(v=vs.100).aspx – Arical

+0

@Arical - 该设置只适用于ASP.NET,而不适用于任何.NET进程。例如,它不会对控制台程序或Windows服务产生影响。 –