Universal Windows Platform (UWP)
A Microsoft platform for building and publishing apps for Windows desktop devices.
2,832 questions
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
List of Task working in parallel but not getting Result ,,Throwing exception .
var listTask = new List<Task>();
if (assessmentDatas.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(assessmentDatas)));
if (adLimits.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(adLimits)));
if (variables.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(variables)));
if (resultValues.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(resultValues)));
Task.WaitAll(listTask.ToArray());
var results = listTask.Select(x => ((Task<(DataTable dt, string tableName, string tempTableName, Type type)>)x).Result).ToList(); Exception Thrown here
Above Code is Working in Parallel but not able to Get Result.
Below Code I am getting Result, but Not Working in Parallel
var listTask = new List<Task>();
if (assessmentDatas.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(assessmentDatas)).Result);
if (adLimits.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(adLimits)).Result);
if (variables.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(variables)).Result);
if (resultValues.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(resultValues)).Result);
Task.WaitAll(listTask.ToArray());
var results = listTask.Select(x => ((Task<(DataTable dt, string tableName, string tempTableName, Type type)>)x).Result).ToList();
Hi,
change your code, please:
var listTask = new List<Task>();
if (assessmentDatas.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(assessmentDatas)));
if (adLimits.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(adLimits)));
if (variables.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(variables)));
if (resultValues.Count > 0) listTask.Add(Task.Factory.StartNew(() => BulkHelper.GetDataTable(resultValues)));
Task.WaitAll(listTask.ToArray());
var results = listTask.Select(x => (Task<Task<(DataTable dt, string tableName, string tempTableName, Type type)>>)x).Select(y => y.Result).Select(z => z.Result).ToList();