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