У меня есть список из n задач, которые я хочу выполнять параллельно, асинхронно.
Каждая из параллельно выполняемых задач может иметь 1 или более вложенных задач.
Мне также нужнодождитесь и проанализируйте возвращаемый результат каждой задачи.Вся операция является успешной, только если все задачи выполняются успешно (например, они возвращают «true»).
По сути, это транзакционная операция, в которой мне нужно дождаться успешного завершения многих задач.
Проблема заключается в том, что каждая задача может занять 1-3 часа.выполнено (некоторые задачи могут занять всего несколько минут, а другие - часы) Вся операция может занять полный рабочий день.
Мои вопросы:
- Является ли этот подход осуществимым и выполнимым с помощью Task Parallel Library?
- Кроме того, что произойдет, если одна из задач вышла из строя и не сможет отчитаться перед исходной задачей?
- Может ли библиотека обрабатывать такие сценарии, когда задачи не только вложены, но и занимают очень много времени?
РЕДАКТИРОВАТЬ: Iнашел этот блог об отмене задач, особенно долго выполняемых.Может быть, это будет полезно и другим.