Как отложить «горячие» задачи, чтобы они могли обрабатываться в установленном порядке

Скажем, у меня есть набор задач:

        var task1 = DoThisAsync(...);
        var task2 = DoThatAsync(...);
        var task3 = DoOtherAsync(...);
        var taskN...

Я ищу способ обработать набор задач по порядку (определяется местом, в котором содержится коллекция, скажем), но чтобы задачи запускались / запускались только тогда, когда их очередь, а не раньше, - и чтобы все это было завершено собственная задача.

Проблемные ограничения / детали:

Эти задачи должны выполняться в определенном порядке, т. Е. Задача1, задача2, ...Предыдущее задание должно выполняться асинхронно, прежде чем может начаться следующееКоличество заданий является переменнымРазличный набор задач может быть назначен каждый раз, когда выполняется кодПорядок и количество заданий известны заранее.

Основная проблема заключается в том, что как только я вызываю соответствующий метод (например, DoThis () ...) для возврата каждой задачи, эта задача уже «горячая» или выполняется, что нарушает (2) выше.

Я пытался работать с .ContinueWith (..), но если я вызову каждую из задач, как указано выше, чтобы установить продолжения или добавить их в список или коллекцию, они уже запущены.

Не уверен, что Lazy <T> может помочь, но не может понять, как в настоящее время?

Надеюсь, что это имеет смысл, так как я довольно новичок в async / await / tasks.

Спасибо заранее.

Ответы на вопрос(0)

Ваш ответ на вопрос