佳能EOS SDK |线程EdsDownloadEvfImage问题

时间:2016-06-03 12:41:32

标签: c++ qt thread-safety edsdk canon-sdk

所以基本上我在尝试从单独的线程上从Canon EOS SDK运行EdsDownloadEvfImage时遇到问题。然后程序会......意想不到的事情,冻结等等。

基本上,它的作用是当试图从主线程锁定互斥锁时,工作线程在EdsDownloadEvfImage上冻结,这对我来说简直令人费解。

我发现在线程上执行任何EdsOpenSession,EdsCreateMemoryStream等都是绝对的杀手,但是并不介意,唯一真正耗时的操作是图像下载。

根据文件记录,我确保了工作线程

CoInitializeEx( NULL, COINIT_APARTMENTTHREADED )

在下载前调用。我没有它也试过它,没有任何区别。执行此功能可能存在一些问题吗?

或者是否可以在工作线程上运行整个EDSDK? (使用initializeSDK等。)

感谢您的回复。

顺便说一下:我在Qt应用程序中使用SDK。

1 个答案:

答案 0 :(得分:0)

问题解决了,我只是将所有内容放在一个单独的线程上,现在它正常工作。