У меня довольно сложная настройка и вам нужен вход, как ее разрешить.Моделирование: параллельная очередь с зависимостями
У меня есть процесс А, который состоит из 1,2а задач, 2b, 2c, 3a, 3b, 3c и 4.
Задача 1 должен первым выполнить ни с кем-либо из этих задач параллельно.
Задачи 2a, 2b, 2c должны запускаться один за другим, но могут выполняться параллельно с 3a, 3b, 3c (которые также должны запускаться один за другим. Задача 4 может выполняться только после того, как 3c и 2c
Сначала я реализовал это с помощью Priority Queue и попытался управлять им с помощью Приоритетов и механизма, который только отменяет только один из видов, означающий, что 2a и 3a могут быть удалены одновременно, 2b и 3b и т. д.
Но если 3a сделано и может начаться 3b, ему также нужно дождаться 2a. Мне нужна идея механизма очереди, который каким-то образом может справиться с моей ситуацией. Я знаю, что это сложно, но любой намек, вероятно, будет помогите мне.
TPL Dataflow для победы. https://www.google.co.uk/search?q=tpl+dataflow – spender
Это довольно широкий вопрос, можете ли вы сузить проблему и, возможно, опубликовать какой-нибудь существующий код? Трудно ответить на это кратко. – nozzleman
Необходимо выполнить блокировку после запуска каждой параллельной группы задач. Вы можете использовать WaitHandler для блокировки. См. Msdn: https://msdn.microsoft.com/en-us/library/58195swd(v=vs.110).aspx – jdweng