i have got this code in my project. it does some cpu processing so in order to speedup stuff am trying to use Parallel.ForEach.
For some reason parallel execution adds a null item which results in "Object reference not set to an instance of an object" exception at later stage of the program.
** It shouldnt been adding null
Working code
foreach (DataRow datarow in dataSet.Tables[0].Rows)
{
var item = new T();
for (int i = 0; i < datarow.Table.Columns.Count; i++)
{
var columnName = datarow.Table.Columns[i].ColumnName;
var columnValue = datarow[i];
// set new object values
// use reflection logic to grab values
}
finalList.add(item);
}
Error Code
List<DataRow> list = dataSet.Tables[0].AsEnumerable().ToList();
Parallel.ForEach<DataRow>(list, datarow =>
{
var item = new T();
for (int i = 0; i < datarow.Table.Columns.Count; i++)
{
var columnName = datarow.Table.Columns[i].ColumnName;
var columnValue = datarow[i];
// set new object values
// use reflection logic to grab values
}
finalList.add(item);
}