На данный вопрос уже ответили:
Код:
Task<RequestBodyModelDC>[] relatedObjectMapping = new Task<RequestBodyModelDC>[fields.Columns.Count];
for (int i = 0; i < relatedObjectMapping.Count(); i++)
{
Task<RequestBodyModelDC> currTask = new Task<RequestBodyModelDC>(() =>
{
return FillMappingObkect(i, fields, entity);
});
relatedObjectMapping[i] = currTask;
relatedObjectMapping[i].Start();
}
Проблема в том, что в currTask каждый раз попадают последние данные из коллекции relatedObjectMapping, соответственно идет дублирование данных.
Подскажите, пожалуйста, как сделать так,чтобы в цикле при создании Таски в нее передавались актуальное значение параметра "i" в функцию FillMappingObkect!
Спасибо
Проблема в захвате переменной. Просто создайте переменную с ограниченной областью видимости и на каждой итерации цикла она будет своя:
for (int i = 0; i < relatedObjectMapping.Count(); i++)
{
int localI = i;
// Дальше везде используем localI вместо i
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Является ли антипаттерном перехват всех исключений разом?
Проблема с добавление данных в БД с ипользованием Entity Framework, никак не могу понять причину, почему после добавления в БД записи с неуникальным...
Есть приложение WPF (паттерн MVVM) с двумя окнами (Авторизация и главное окно