我已經在Silverlight/C#中創建了一個渲染器。目前,我正在使用System.Threading.ThreadPool
來安排並行渲染圖塊。這現在工作得很好,但我想限制使用的線程數。是否有最大線程數的Silverlight線程池?
因爲這可以運行在Silverlight中有幾個限制:
- 如果我打電話
ThreadPool.SetMaxThreads
應用程序崩潰as documented。 - 沒有任務並行庫
我看到幾個選項:
- 查找OSS /第三方線程池
- 實現自己的線程池(我寧願不要)
- 使用的Rx(這是我在其他地方做的)
是否有任何測試替代主題與Silverlight一起使用的池?
或者任何人都可以想出一個Rx表達式,它產生有限數量的線程並對這些線程進行排隊工作?
爲什麼要更改線程數。要使用線程池,您的任務不應該運行很長時間。考慮到這一點,已考慮到核心數量,它必須非常高效。您是否在wpf應用程序中試過您的代碼,並確認應用程序可以更有效地使用您設置的數字? – 2011-02-24 14:31:43
我還沒有測試過WPF應用程序,我不確定它會更有效率。我想嘗試一下,看看它是否更高效,我希望能夠做到這一點,以調試和理解任何同步問題。 – 2011-02-24 14:42:52
很難調試多線程應用程序,並相信我,當程序遇到斷點並暫停自己時,您不會看到太多的同步問題。您需要爲此分析器。看看[這個](http://stackoverflow.com/questions/2222826/profiling-net-thread-contention) – 2011-02-24 15:29:08