Возвращаемые значения Parallel.ForEachC#

Место общения программистов C#
Ответить
Anonymous
 Возвращаемые значения Parallel.ForEach

Сообщение Anonymous »

Мне нужно обработать список объектов (не тот, который показан в примере), который, как я думаю, можно значительно улучшить, запустив его в цикле 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»