7
Я хотел бы иметьМожно ли использовать SHFileOperation в рабочем потоке?
- один фоновый поток, который будет копировать файлы с помощью функции
SHFileOperation
, всегда только одинSHFileOperation
в то время (но я хочу, чтобы быть в теме) - Мне нужна выходной интерфейс, так что мне нужно использовать
FOF_SIMPLEPROGRESS
флаг и передать что-то кWnd
члену
у меня есть два вопроса
- безопасно ли вызывать
SHFileOperation
с флагомFOF_SIMPLEPROGRESS
(для взаимодействия с пользователем) из потока, отличного от основного? - если да, то какую ручку я должен пройти в член
Wnd
? Я пробовал дескриптор основной формы, но когда, например, диалоговое окно подтверждения перезаписи всплывает, и вы подтвердите это, основная форма отправляется на задний план, что на самом деле странно
Примечание: У меня есть очередь для этих операций, поэтому выполняется только один SHFileOperation
в то время (после того, как он закончил, поток переходит к другому действию, что может быть следующей SHFileOperation
)
Большое спасибо
Приятно слышать это. 'Wnd' член установлен в 0 работает отлично. Большое спасибо! –
Кроме того, в документации также упоминается, что использование относительных путей с помощью SHFILEOPSTRUCT не является потокобезопасным. Поэтому, если вы используете это в рабочем потоке, вы должны использовать абсолютные пути! – 8bitwide
@ 8bitwide Использование относительных путей никогда не является потокобезопасным. Не для вызова API. Это потому, что есть один рабочий каталог для каждого процесса. –