Пакет SDK для Canon EOS | многопоточные проблемы EdsDownloadEvfImage

поэтому в основном у меня возникают проблемы при попытке запустить EdsDownloadEvfImage из SDK Canon EOS в отдельном потоке. Затем программа делает... неожиданные вещи, зависает и т. д.

По сути, это то, что рабочий поток зависает на EdsDownloadEvfImage при попытке заблокировать мьютекс из основного потока, что просто сногсшибательно для меня.

Я обнаружил, что выполнение любого из EdsOpenSession, EdsCreateMemoryStream и т. д. в потоке является абсолютным убийцей, но это не имеет значения, единственной действительно трудоемкой операцией является загрузка изображения.

Основываясь на документации, я убедился, что рабочий поток

CoInitializeEx( NULL, COINIT_APARTMENTTHREADED )

вызывается перед загрузкой. Я также пробовал без него, и это было без какой-либо разницы. Может быть, есть какая-то проблема с выполнением этой функции?

Или рабочей альтернативой будет запуск всего EDSDK в рабочем потоке? (с инициализацией SDK и т. д.)

Спасибо за ответы.

Кстати: я использую SDK в приложении Qt.


person Danol    schedule 03.06.2016    source источник


Ответы (1)


Проблема решена, я просто поместил все в отдельный поток, и теперь все работает нормально.

person Danol    schedule 03.06.2016