Должен ли я использовать поток данных TPL для борьбы со сложностью, если нет параллелизма?

У меня есть проект, который имеет блоки рабочего процесса семантически. Решение не включает в себя какие-либо параллельные операции или операции с процессором, а также не требует масштабируемости. У меня просто есть вход, и он обрабатывается и передается по конвейеру блоков. Каждый блок обрабатывает элемент, принимает решение и передает его следующему блоку. Чтобы бороться со сложностью, можно ли использовать поток данных TPL или это будет излишним, так как нет параллелизма, и я должен использовать обычную тактику ООП? Другими словами, является ли TPL DataFlow правильным инструментом для этой работы?

1 ответ

Решение

DataFlow предназначен именно для тех факторов, которые вам не нужны ("The solution does not involve any concurrency or CPU bound operations nor scalability is required").

Что не так с цепочкой методов?

var input = ...;
var result1 = F1(input);
var result2 = F2(result1);
var result3 = F3(result2);
return result3;

То, что вы описали, настолько просто, что я не вижу необходимости больше ничего делать. В частности, неясно (пока возможно), что ООП совпадает. Вы не описали объекты или данные. Вы описали процесс, который отображается на код, а не на объекты.

Другие вопросы по тегам