Я отчаянно пытаюсь найти решение моей проблемы.
Ниже приведен код, который генерирует разные задачи для каждого элемента в List
.
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
, потому что он не обеспечивает необходимого эффекта параллелизма для увеличения индикатора выполнения в зависимости от завершения каждой задачи .