我想創建一個固定的任意大小的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. 如何在Android中創建固定大小的圖像文件?
- 2. 如何在Gtk + 3中創建一個固定大小的Gtk.TextView?
- 3. 如何在純AS3中創建固定大小的swf
- 4. 如何在draw.io中創建一個固定大小的形狀?
- 5. 創建固定大小的二叉樹
- 6. 創建固定大小的堆棧
- 7. 如何創建具有固定大小的UIView子類?
- 8. 在Executors.withFixedSizePool中創建固定大小的數據庫連接
- 9. 如何在python中創建固定大小的格式化字符串?
- 10. 如何在C#中創建固定大小的字節數組用戶類型?
- 11. 如何在python中創建一個固定大小(無符號)的整數?
- 12. 如何在java中創建一個固定大小的通用緩衝區?
- 13. 固定大小
- 14. 在numpy的固定大小的數組中取出固定大小的約束
- 15. 在.NET 4.0中如何實現ThreadPool?
- 16. .Net如何創建跨進程的所有AppDomain共享的自定義ThreadPool?
- 17. 如何在.NET中將數字格式化爲固定的字符串大小?
- 18. 如何使STL的priority_queue固定大小
- 19. 如何在Hive中的直方圖中使用固定大小的大小?
- 20. 固定大小的陣列不固定
- 21. 在C#中的結構中創建固定大小的字符串?
- 22. 創建新的固定大小的矢量
- 23. 創建連續的固定大小的基數36個ID
- 24. 如何創建一個給定大小
- 25. 固定在Firefox中的字體大小?
- 26. 固定大小柱
- 27. css,固定大小
- 28. C#創建一個固定大小的哈希表
- 29. Unity2D - 創建固定大小動態地形的方法
- 30. 創建一個固定大小的列表或數組?
.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