好吧,這已經有一段時間了,因爲我真的不得不動用大量線程。線程處理C#中的大集合
基本上的情況是:
我有一個數據庫查詢的大集合,說過分,一個百萬行已返回並儲存某種(數組列表,地圖等)的收藏。我希望能夠將這個集合分解並在線程,進程等之間進行劃分,以便高效地完成工作。但我不想將整個集合均勻分成不同的過程。我想說10個線程,每個線程可以工作30行,當他們完成處理時,他們會從原始集合中獲取更多行。
這是想到解決這個問題的第一件事。我不知道該集合如何動態分配給線程看起來像。我最終會收集所有單獨的流程結果並將它們編譯爲另一個將用於未來處理的集合。我知道查詢結果將會是非常多的行,並且認爲最初動態地將部分分配給線程並在他們完成任務時將是處理這種情況的最佳方式。
這是一個兩部分問題。一,會怎麼說...僞碼看起來像這樣?和二,這是處理這種情況的最好方法嗎?
任何幫助將不勝感激。哦,我正在考慮在C#中爲此工作。
謝謝!
您不希望在CPU中創建比核心更多的線程。所以10個線程將主要是太多。查看此鏈接以獲取一些提示和代碼示例:http://msdn.microsoft.com/en-us/magazine/cc163340.aspx – TcKs 2013-04-30 20:36:29