Вы можете попробовать установить текущий каталог в отдельном потоке, и ждать его, чтобы закончить только в течение разумного периода времени. Поскольку текущий параметр каталога для каждого процесса, вызов SetCurrentDirectory из другого потока все равно будет выполнять задание. Вы должны, конечно, учитывать, что должно произойти, если набор занял больше времени, чем вы хотели ждать, но после того, как основной поток, перемещенный по набору, действительно завершился.
Учитывая это, я стараюсь избегать использования текущего каталога по причинам, отличным от открытия диалогового окна выбора файлов. Будучи глобальным процессом, в многопоточной среде нельзя доверять. Использование полных путей лучше, когда это возможно.
«... Я стараюсь избегать использования текущего каталога ...» Я полностью согласен с этим по многим причинам – SteelBytes