Foreach into Parallel.Foreach c#

时间:2017-03-15 22:38:52

标签: c# lambda parallel-processing

我有以下foreach循环,并希望将其平行以提高应用程序读取.csv文件列表的速度。将此转换为lambda的任何帮助都将非常感激!

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]);
  }  

1 个答案:

答案 0 :(得分: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]);
      });