如何同时/并行/异步进行两个foreach“工作”

时间:2019-05-15 13:40:14

标签: c# .net

我对C#编程有疑问。 我得到了要并行化或使其异步运行的代码。 我得到了一个storyList,其中包含类别和数据的列表。我想对每个列表进行并行处理,因为它们彼此独立。 如何实现foreach商店列表和foreach数据都同时迭代?

public void workwithitems(List<StoreModel> StoreList)
{
            foreach (var item in StoreList)
            {
                foreach (var entry in item.categories) {
                    Items.Add(new item
                    {
                       Name = item.Name                     
                    });
                }
                foreach (var item in item.Data) {
                    Items.Add(new item
                    {
                      Name = item.Name                     
                    });
                }
            }
}

2 个答案:

答案 0 :(得分:2)

您可以使用任务

System.Threading.Tasks.TaskFactory.StartNew(() => { foreach number 1...});
System.Threading.Tasks.TaskFactory.StartNew(() => { foreach number 2...});

答案 1 :(得分:2)

将它们放入方法中,根据TPL,您可以执行以下操作:

Parallel.Invoke(() => MethodWithForeach(), () => MethodWithOtherForeach());