Pull to refresh

Comments 11

Тут надо заметить, что иногда перехват вывода влияет на работоспособность консольной утилиты. Если не ошибаюсь, столкнулся с этой проблемой при работе с одной из утилит Марка Руссиновича: запуск через консоль отрабатывал, запуск без перехвата отрабатывал, запуск с перехватом не работал.

Такое поведение наблюдается в многопотоке. В сингле не сталкивался.

Есть разные потоки вывода консольных приложений, а не только стандартный, на который ориентирован CommandHelpers.

p.s Ну и название… 'CommandHelpers'
Ещё не хватает возврата возвращаемого значения ExitCode.
bool Execute(string commandName, IEnumerable<string> paramsList);
bool Execute(string commandName, IEnumerable<string> paramsList, out int exitCode);

В публикации его нет, как нет и других методов, которые реализованы в рабочих версиях этого класса. Они выходят за рамки этой статьи.
У Вас имеется консольное приложение. Есть задача что-то автоматизировать или протестировать сборку. Вся логика действий описана некоторым сценарием. Возможно, вам придется производить обработку данных из других источников, например от тех-же консольных приложений. Для этих задач это простое решение.
А не лучше было бы просто создать экстеншн для процесса? Это же фактически класс запуска процесса с аргументами. Тут ведь из своего кода разве что вызов Aggregate (польза которого для складывания строк сомнительна).
А почему польза сомнительна? Быстродействие?
Ну учитывая, что вряд ли будет аргументов > 10 на это можно забить. Но вообще когда я вижу складывание строк в цикле у меня случается расстройство :)

Вкратце на картинке:

image
В моих граничных условиях было 256 символов.
Sign up to leave a comment.

Articles