See here i am using AsParallel().ForAll(). x contains datarow but how to get row or index? i tried this syntax which does not work
ForAll((x,r) => please advise how to get row index when used AsParallel().ForAll(). Thanks
dt.AsEnumerable().AsParallel().ForAll(x =>
{
data.Add(x.Field<string>("ID") + " " + Thread.CurrentThread.ManagedThreadId);
a = x.Field<string>("ID");
y++;
});
I am following this approach given by Mr Viorel-1
Thanks you so much for code sample. i followed your guide line.
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Salary", typeof(double));
DataRow dr = null;
dr = dt.NewRow();
dr["ID"] = 1;
dr["Name"] = "Manju";
dr["Salary"] = 1500;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 2;
dr["Name"] = "Dibyendu";
dr["Salary"] = 2000;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 3;
dr["Name"] = "Suraj";
dr["Salary"] = 5000;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 4;
dr["Name"] = "Mukti";
dr["Salary"] = 1200;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["ID"] = 5;
dr["Name"] = "Suvo";
dr["Salary"] = 1000;
dt.Rows.Add(dr);
List<Employee> emp = new List<Employee>();
dt.AsEnumerable().Select((r, idx) => new { r, idx }).AsParallel().ForAll(x =>
{
emp.Add(new Employee
{
RowIndex = x.idx+1,
ThreadID = Thread.CurrentThread.ManagedThreadId,
ID = x.r.Field<int>("ID"),
Name = x.r.Field<string>("Name"),
Salary = x.r.Field<double>("Salary")
});
});