我想创建一个固定的任意大小的ThreadPool在.NET中 - 我知道默认大小是25 - 但我希望有不同的大小,例如5或10.任何人?如何在.NET中创建固定大小的ThreadPool?
回答
你应该小心改变线程池的大小。只有一个固定系统线程池,用于各种事物。如果太小,可能会导致您甚至不认为自己正在使用的区域出现问题。
如果你想有一个特定的任务相对较少的线程池,你应该使用一个单独的游泳池。有各种各样的第三方池 - 我有一个相当老的作为MiscUtil的一部分,但它对于简单用例应该足够好。如果你看,我相信你可以找到更先进的。
这是不幸的,没有在框架中的实例化ThreadPool
呢。我不记得是否并行扩展会有效提供一个,但我不认为它会。
ThreadPool.SetMaxThreads()
有没有另外一种非静态的方法?这不会使所有的ThreadPools的大小 - 我只想要一个ThreadPool的实例具有特定的大小。 – DLauer 2009-08-18 16:09:08
每个进程只有一个BCL ThreadPool。如果你只想要一个线程池,你必须找到第三方库。 – 2009-08-18 16:10:22
它可能值得注意的是,你不能在运行时1.1中做到这一点。当然,线程中的异常可能导致1.1中的内存损坏,所以如果可能的话,你不应该使用它。 – quillbreaker 2009-08-18 17:12:41
ThreadPool.SetMaxThreads(5,5)然后超过五个线程的任何东西都会排队。
你想要ThreadPool.SetMaxThreads()方法。
您可以使用ThreadPool.SetMinThreads和ThreadPool.SetMaxThreads来控制线程池中的线程数。
这就是说,我建议谨慎使用它。由于BCL中的许多操作都依赖于线程池线程,所以很容易让自己陷入麻烦。
- 1. 如何在Gtk + 3中创建一个固定大小的Gtk.TextView?
- 2. 如何在纯AS3中创建固定大小的swf
- 3. 如何在draw.io中创建一个固定大小的形状?
- 4. 创建固定大小的堆栈
- 5. 在Executors.withFixedSizePool中创建固定大小的数据库连接
- 6. 如何在java中创建一个固定大小的通用缓冲区?
- 7. 在numpy的固定大小的数组中取出固定大小的约束
- 8. 如何在.NET中将数字格式化为固定的字符串大小?
- 9. 如何使STL的priority_queue固定大小
- 10. 在.NET 4.0中如何实现ThreadPool?
- 11. 固定大小的阵列不固定
- 12. 创建连续的固定大小的基数36个ID
- 13. 固定在Firefox中的字体大小?
- 14. css,固定大小
- 15. 创建一个固定大小的列表或数组?
- 16. Unity2D - 创建固定大小动态地形的方法
- 17. C#创建一个固定大小的哈希表
- 18. 使用ImageMagick创建固定大小的合成图像
- 19. ios创建固定大小的图像拼贴与背景
- 20. 如何创建一个固定大小的twitter引导文本区域
- 21. 如何不使大小固定
- 22. 如何使窗口大小固定?
- 23. 是否可以在linux中创建一个固定大小的文件?
- 24. 固定大小的头
- 25. 固定大小的数组
- 26. Tkinter的create_rectangle()固定大小
- 27. 固定大小的列
- 28. 固定大小的形式
- 29. 如何在C++中声明一个数组的固定大小
- 30. 如何获取固定在PHP中的图像大小?
.NET 4.0中的并行扩展实际上将使用基类库中的标准ThreadPool。他们不会提供他们自己的。 (BCL的ThreadPool类在.NET 4中进行了改进,增加了许多功能,使得并行扩展能够高效地工作,这反过来又在很多方面改进了它,例如,它比.NET 3.5有更好的调度器ThreadPool) – 2009-08-18 18:12:28
@Reed:是的,我知道使用系统线程池的PFX的正常位...我不确定是否有新的可以创建。呃,好吧。 – 2009-08-18 18:45:27