Мне нужно обработать список объектов (не тот, который показан в примере), который, как я думаю, можно значительно улучшить, запустив его в цикле Parallel.foreach. Однако результат не тот, что я ожидал. Иногда возвращаемый список не совпадает с входным списком. Пожалуйста, дайте мне знать, почему он не работает так, как я ожидал (novise), а также как заставить его работать. См. пример кода ниже.
List list = new List() { "John", "Mary", "Margaret", "Silvia", "Martha" };
List people = new List();
Console.WriteLine("There are {0} names on the list", list.Count.ToString());
Parallel.ForEach(list, name =>
{
people.Add(new Person(name));
});
foreach (Person person in people)
{
Console.WriteLine("Name: {0,-10} Age: {1}", person.Name, person.Age.ToString());
}
Console.WriteLine("There are {0} people on the list", people.Count.ToString());
Console.ReadLine();
namespace ParallelForEach
{
internal class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name)
{
Name = name;
Age = name.Sum(c => (int)c);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-values