Я пытаюсь запустить методы с использованием Parallel.Invoke, с каждым методом добавляющего ответ на список за пределами Parallel.InvokeРабота со списками и Parallel.Invoke
Я играл вокруг с помощью замка, но следующий код не работает
var allResults = new List<ResultRecord>();
var sync = new object();
Parallel.Invoke(
() => { var results = GetResultSet1(); lock (sync) { allResults.Concat(results); } },
() => { var results = GetResultSet2(); lock (sync) { allResults.Concat(results); } });
Этот код не устанавливает список, все результаты заканчиваются пустым.
Вы не сохраняете значение из 'Concat'. Возможно, вы хотите использовать 'AddRange'. – PetSerAl
Спасибо, в этом была проблема. Перед настройкой Parallel.Invoke я использовал строку concats, которая работала как ожидалось – mrb398