2017-03-15 62 views
-2

我有以下的foreach循環,並希望它來提高我的應用程序讀取.csv文件列表的速度。任何將此轉換爲lambda的幫助將非常感謝!Foreach into Parallel.Foreach c#

foreach (var storeData in storeCodesData) 

    { 
     string[] storeDataSplit = storeData.Split(','); 
     if (storeDataSplit[0] != "") 
     { 
      Store store1 = new Store { StoreCode = storeDataSplit[0], StoreLocation = storeDataSplit[1] }; 
      stores.Add(store1); 
      storename.Add(storeDataSplit[1]); 
     } 
     PopulateListViewItems(storeDataSplit[0]); 
    } 
+0

[爲什麼「有人能幫助我嗎?」不是一個實際的問題?(http://meta.stackoverflow.com/q/284236) – EJoshuaS

+0

另外,請多加小心有標籤的使用 - 視覺Studio標籤是針對工具本身的問題,而不是一般的代碼問題。 – EJoshuaS

回答

3

我不確定你在問什麼,但根據你的問題,這裏是你如何做到這一點。請記住,你的邏輯內部必須是「並聯就緒」的。

Parallel.ForEach(storeCodesData, (storeData) => 
     { 
     string[] storeDataSplit = storeData.Split(','); 
     if (storeDataSplit[0] != "") 
     { 
      Store store1 = new Store { StoreCode = storeDataSplit[0], StoreLocation = storeDataSplit[1] }; 
      stores.Add(store1); 
      storename.Add(storeDataSplit[1]); 
     } 
     PopulateListViewItems(storeDataSplit[0]); 
     }); 
+0

謝謝,正是我需要的! (我得到了lambda表達式錯誤) – Alex

+0

不客氣。如果您遇到任何問題,請告訴我。順便說一句,如果它解決了你的問題,那麼請將它標記爲已接受的答案。謝謝 –

+0

完成!我遇到了一個新問題。現在我收到一個「跨線程操作無效」錯誤以下方法: '私人無效PopulateListViewItems(字符串項) { listBox1.Items.Add(項目); }' 我想我需要使方法線程安全,但我不太確定如何!任何幫助將非常感激。 – Alex