7
chciałbym miećCzy można bezpiecznie używać funkcji SHFileOperation w wątku roboczym?
- jeden tło wątek, który będzie skopiować pliki za pomocą funkcji
SHFileOperation
, zawsze tylko jedenSHFileOperation
w czasie (ale chcę go mieć w wątku) - muszę wyjście UI, więc trzeba użyć flagi
FOF_SIMPLEPROGRESS
i przekazać coś członkowiWnd
mam dwa pytania
- Czy można bezpiecznie wywoływać flagę
SHFileOperation
zFOF_SIMPLEPROGRESS
(dla interakcji użytkownika) z wątku innego niż główny? - jeśli tak, jaki uchwyt należy przekazać członkowi
Wnd
? Próbowałem obsługi głównego formularza, ale gdy np. okno dialogowe potwierdzenia nadpisania wyskakuje i potwierdzić, że główną formą jest wysyłany do tła, co jest naprawdę dziwne
Uwaga: Mam kolejki dla tych operacji, więc tylko jeden SHFileOperation
odbywa się w czasie (po jego zakończeniu, nitka przechodzi do innych działań, co może być kolejnym SHFileOperation
)
dzięki dużo
Wspaniale to słyszeć. Element 'Wnd' ustawiony na 0 działa idealnie. Wielkie dzięki! –
Ponadto, dokumentacja wspomina również, że używanie względnych ścieżek z SHFILEOPSTRUCT NIE jest bezpieczne dla wątków. Więc jeśli używasz tego w wątku roboczym, musisz użyć bezwzględnych ścieżek! – 8bitwide
@ 8bitwide Korzystanie ze ścieżek względnych nigdy nie jest bezpieczne. Nie dla żadnego połączenia API. A to dlatego, że istnieje jeden katalog roboczy na proces. –