Я совершенно не удовлетворён вот этим решением:
https://rosettacode.org/wiki/Walk_a_directory/Recursively#C.23
Если бы дело было на собеседовании, кандидат бы не прошел, потому что:
— не обеспечивается индикация прогресса (прогнозируемое время и проделанная доля работы)
— не обеспечивается возможность прерывания процесса
— обработка файлов не проводится параллельно
Везде рекламируется, что преимущество async/await в отличие от BackgroundWorker
в том, что их можно использовать рекурсивно.
Ну вот, это и нужно продемонстрировать.