0

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

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

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

根据文档,我确保工作线程具有

CoInitializeEx( NULL, COINIT_APARTMENTTHREADED )

下载前调用。我也试过没有它,它没有任何区别。也许执行这个功能有问题?

或者一个可行的替代方案是在工作线程上运行整个 EDSDK?(带有initializeSDK等)

感谢您的回复。

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

4

1 回答 1

0

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

于 2016-06-03T14:01:48.353 回答