所以基本上我在尝试从单独的线程上从Canon EOS SDK运行EdsDownloadEvfImage时遇到问题。然后程序会......意想不到的事情,冻结等等。
基本上,它的作用是当试图从主线程锁定互斥锁时,工作线程在EdsDownloadEvfImage上冻结,这对我来说简直令人费解。
我发现在线程上执行任何EdsOpenSession,EdsCreateMemoryStream等都是绝对的杀手,但是并不介意,唯一真正耗时的操作是图像下载。
根据文件记录,我确保了工作线程
CoInitializeEx( NULL, COINIT_APARTMENTTHREADED )
在下载前调用。我没有它也试过它,没有任何区别。执行此功能可能存在一些问题吗?
或者是否可以在工作线程上运行整个EDSDK? (使用initializeSDK等。)
感谢您的回复。
顺便说一下:我在Qt应用程序中使用SDK。
答案 0 :(得分:0)
问题解决了,我只是将所有内容放在一个单独的线程上,现在它正常工作。