在c#中并行运行方法并整理结果

本文关键字:结果 方法 运行 并行 | 更新日期: 2023-09-27 18:13:29

我有一个返回对象的方法。在父函数中,我有一个id列表。

我想为我拥有的每个ID调用方法,然后将对象添加到列表中。现在我已经编写了一个循环,它调用传递每个ID的方法,并等待返回的对象,然后转到下一个ID。

这可以并行完成吗?

在c#中并行运行方法并整理结果

可能是这样的:

  List<int> ids = new List<int>();
  List<object> result = new List<object>();
  Parallel.ForEach(ids, (id, state, index) => {
    result.Add(new { Id = id }); // You class instance here.
  });

我认为任务并行库将对您有所帮助

Task[] tasks = new Task[2];   
tasks[0] = Task.Factory.StartNew(() => YourFunction());
tasks[1] = Task.Factory.StartNew(() => YourFunction());
Task.WaitAll(tasks);// here it will wait untill all the functions get completed