Мой проект требует сбора данных из ряда источников, а затем что-то делать в ответ на завершение сбора этих данных.Некоторые из задач по сбору зависят от предыдущих задач по сбору.TPL хорошо подходит, потому что он, естественно, продолжает задачи от своих предшественников, а «конечные» задачи, которые используют результаты, снова являются зависимыми.Отлично.Тем не менее, мы хотели бы иметь задачу «сон и повтор», которая начинается после завершения «финальных» задач;Задача этой задачи состоит в том, чтобы логически быть предшественником «заключительных» задач и начать следующий цикл.По сути, DAG TPL становится циклическим или, если рассматривать последовательно, циклом.
Возможно ли полностью выразить это циклическое требование в API TPL?Если так, то как?Вместо этого наша текущая реализация выполняет WaitAll () на предшествующих объектах, а затем Task.StartNew () для делегата, который выполняет спящий режим с последующей перестройкой графа задач с WaitAll () .Это работает, но кажется немного искусственным.