Безопасно ли использовать SHFileOperation в рабочем потоке?
Я хотел бы иметь
- один фоновый поток, который будет копировать файлы через всегда только один
SHFileOperation
в то время (но я хочу, чтобы он был в потоке) - мне нужен вывод пользовательского интерфейса, поэтому мне нужно использовать
FOF_SIMPLEPROGRESS
флаг и передать что-тоWnd
у меня два вопроса
- можно ли позвонить
SHFileOperation
сFOF_SIMPLEPROGRESS
флаг (для взаимодействия с пользователем) из потока другие, чем основной ? - если да, то какую ручку я должен передать в
Wnd
- члены ? Я пробовал дескриптор основной формы, но когда, например, появляется диалоговое окно подтверждения перезаписи, и вы подтверждаете его, основная форма отправляется в фоновый режим, что действительно странно
Примечание.:
У меня есть очередь для этих операций, поэтому только один SHFileOperation
выполняется в то время (после его завершения поток продолжает другое действие, что может быть следующим SHFileOperation
)
Спасибо большое
1 ответов
- совершенно безопасно позвонить
SHFileOperation
из потока, отличного от основного потока. - Я
0
какhwnd
член. Если вы передадите дескриптор главного окна, я ожидаю, что это окно будет отключено, потому чтоSHFileOperation
является модальным диалогом. Поскольку диалоговые окна подтверждения и выполнения файлов являются интерфейсом верхнего уровня для фонового потока, вы не хотите, чтобы какие-либо окна были отключены при отображении этих модальных диалоговых окон.