.NET 4.x Распараллеливание. Parallel.ForEach - C#

Узнай цену своей работы

Формулировка задачи:

На данный момент выполняется такой код:
Листинг программы
  1. Hashtable files2copy;
  2. void startButton_Click(object sender, RoutedEventArgs e)
  3. {
  4. files2copy = new Hashtable();
  5. foreach (LectionPanel lPanel in treeView.Items)
  6. {
  7. LectionCount(lPanel);
  8. }
  9. }
  10. private void LectionCount(LectionPanel lPanel)
  11. {
  12. if (lPanel.HasItems)
  13. foreach (LectionPanel childPanel in lPanel.Items)
  14. {
  15. LectionCount(childPanel);
  16. }
  17. string path = lPanel.Lection.File;
  18. if(!files2copy.ContainsKey(path.GetHashCode()) && File.Exists(path))
  19. files2copy.Add(path.GetHashCode(), path);
  20. }
Класс LectionPanel наследуется от TreeViewItem.

Вопрос: Как распараллелить код

Листинг программы
  1. foreach (LectionPanel lPanel in treeView.Items)
  2. {
  3. LectionCount(lPanel);
  4. }

используя Parallel.ForEach ?

Пытался, но ничего рабочего не вышло.

Решение задачи: «.NET 4.x Распараллеливание. Parallel.ForEach»

textual
Листинг программы
  1. if (lPanel.HasItems)
  2.                 foreach (LectionPanel childPanel in lPanel.Items)
  3.                 {
  4.                     LectionCount(childPanel);
  5.                 }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы