Выполняется только последняя задача!

Я отчаянно пытаюсь найти решение моей проблемы.

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

5
задан Jeff LaFay 11 July 2011 в 17:54
поделиться