我急需找到解决我的问题的方法。
以下是生成List<AccountContactView>
中每个项目的不同任务的代码。
List<AccountContactViewModel> selectedDataList
= DataList.Where(
dataList => (bool) dataList.GetType()
.GetProperty("IsChecked")
.GetValue(dataList, new object[0]) == true
).ToList();
this.IsEnabled = false;
Task validateMarked = Task.Factory.StartNew(() =>
{
foreach (AccountContactViewModel viewModel in selectedDataList)
{
if (viewModel != null)
{
Task validate = Task.Factory.StartNew(
() => ValidateAccount(viewModel),
(TaskCreationOptions)TaskContinuationOptions.AttachedToParent);
}
}
});
validateMarked.ContinueWith(x => this.IsEnabled = true);
现在我的问题是,当它运行时,它只对数组中的最后一个项目运行。有关我做错了什么的任何想法吗?
我不想使用Parallel.ForEach,因为它不能提供并行性所需的效果,以根据每个任务的完成情况增加进度条。
foreach
中枚举DataList
查询结果的话,就没有必要调用.ToList()
了。 - dlev