背景:我正在使用.NET 4.0和新的Task類。使用在http://msdn.microsoft.com/en-us/library/ee789351.aspx找到的代碼,我實現了一個任務計劃程序,它限制了執行的併發線程數。我還修改了代碼,使用BlockingCollection而不是LinkedList來完成我的任務列表,以便限制未完成任務列表的大小。我的每個任務都可能產生其他任務。因此,任務A可以產生任務B,C和D.限制自擴展任務
問題:任務A在將任務B,C和D添加到隊列之前不是技術上完成的,但如果隊列已滿, A塊。那麼,我如何擁有一個有限的自我擴展任務的任務隊列呢?
我需要限制隊列大小的原因是否會爆炸我的內存使用。單個任務可以產生數千個其他任務。 10-15個任務每個排隊多達數千...你得到的圖片。
建議將不勝感激!
感謝, 丹
您是否考慮過更改您的任務,以便在實際執行之前不會消耗大量內存?成千上萬的任務對象本身不應該造成問題,但是如果您在排隊前爲每個對象預加載圖像,那麼是的,您將遇到問題。 – 2010-07-06 07:15:01