C Windows设置默认线程池中的最大线程数

C Windows设置默认线程池中的最大线程数,c,multithreading,winapi,C,Multithreading,Winapi,从Windows Vista开始,每个应用程序都会自动获得一个线程池(“默认线程池”) 我的问题是:是否有办法配置此默认线程池的最小和最大线程数 似乎仅适用于非默认线程池(使用创建的池): SetThreadpoolThreadMaximum(NULL,4)-抛出0xC000000D:传递给服务或函数的参数无效根据Microsoft的Joe Duffy,这是不可能的 这是他书第七章的一段话。线程池,第页: 请注意,无法更改默认线程池的 最小和最大计数;相反,您必须指定指向 自定义TP\u池对象。

从Windows Vista开始,每个应用程序都会自动获得一个线程池(“默认线程池”)

我的问题是:是否有办法配置此默认线程池的最小和最大线程数

似乎仅适用于非默认线程池(使用创建的池):


SetThreadpoolThreadMaximum(NULL,4)-抛出
0xC000000D:传递给服务或函数的参数无效

根据Microsoft的Joe Duffy,这是不可能的

这是他书第七章的一段话。线程池,第页:

请注意,无法更改默认线程池的 最小和最大计数;相反,您必须指定指向 自定义
TP\u池
对象。在Vista之前,您可以更改 进程范围的默认池的最大值(稍后我们将看到)。原因是什么 能力被移除是因为它取决于种族:最后一个 调用API的组件将获胜。这可能会导致双方之间的冲突 同一流程中的组件彼此不知道,但需要 不同的最大值或最小值

作者提到的增加池大小的“旧方法”是在中使用的宏
WT\u SET\u MAX\u THREADPOOL\u THREADS
。在新的池体系结构中,该设置似乎被忽略

因此,默认池的最小值固定为0,最大值为500