Здравствуйте, Эйнсток Файр, Вы писали:
ЭФ>Я совершенно не удовлетворён вот этим решением:
ЭФ>https://rosettacode.org/wiki/Walk_a_directory/Recursively#C.23
Если честно, я тоже.
ЭФ>Если бы дело было на собеседовании, кандидат бы не прошел, потому что:
ЭФ>- не обеспечивается индикация прогресса (прогнозируемое время и проделанная доля работы)
А за счет чего оценивать прогнозируемое время? Дополнительным проходом?
ЭФ>- не обеспечивается возможность прерывания процесса
В любой момент прерывается из вышестоящего цикла.
ЭФ>- обработка файлов не проводится параллельно
Никто не мешает обрабатывать файлы параллельно (для чего это делать?). Тут они лишь перебираются. И замечательно, что перебираются не параллельно. Взаимодействие с файловой системой не заточено для параллельной работы с каталогами.
В остальных примерах тоже не видно параллельной обработки. Зачем она нужна в примерах?
ЭФ>Везде рекламируется, что преимущество async/await в отличие от BackgroundWorker
ЭФ>в том, что их можно использовать рекурсивно.
Причем тут обход директорий?
ЭФ>Ну вот, это и нужно продемонстрировать.
Нужно было продемонстрировать рекурсивный обход.
Постановка задачи вполне однозначна "Walk a given directory tree and print files matching a given pattern.".