Я новичок в C#, но изучаю его. Я понял, что у C# есть много удивительных методов, таких как Parallel.Параллельно вызывает тупик?
Итак, скажем, моя программа имеет этот метод.
private void stackOverFlowExample()
{
List<string> testCompany = new List<string>();
List<People> testList = new List<People>();
testCompany.Add("Stack Over Flow 1");
testCompany.Add("Stack Over Flow 2");
testCompany.Add("Stack Over Flow 3");
...(1000 Times)...
Parallel.ForEach(testCompany, company =>
{
testList.Add(new People()
{
Name = value1, // Some values
Address = value2,
Phone = value3,
Company = company
});
});
}
Значит, код выше имеет проблемы, связанные с резьбой? И есть ли какая-нибудь книга или руководство, связанное с решением проблем нитей, которые вы можете порекомендовать?
В вашем коде нет блокировки, поэтому вы не увидите никаких взаимоблокировок, но вы получаете доступ к коллекции, которая не является потокобезопасной для нескольких потоков, поэтому поведение не определено. –