【发布时间】:2018-04-23 03:08:57
【问题描述】:
我认为每隔几分钟向相机发送一条消息是必不可少的,所以我在我的主线程中初始化我的相机并每隔一段时间向相机发送消息,在另一个线程中我打开实时视图进行处理我的其他工作,但在实时查看线程中,发送此消息时等待超时:
EdsSetPropertyData(theCamera, kEdsPropID_Evf_Mode, 0, sizeof(evfMode), &evfMode)
当所有工作都在一个线程中处理时,我从来没有遇到过这种情况,我不知道为什么会这样,有人可以帮助我吗?这是我的一些代码。
我的主线程:(我不在线程中发送keepalive消息,但启动liveview时也会超时!)
CanonCameraWrapper& wrapper = param->wrapper;
bool setup_ok = wrapper.setup(0);
if (!setup_ok)
{
wrapper.destroy();
}
wrapper.setDownloadPath("img");
pthread_t camera_thread;
pthread_create(&camera_thread, NULL, camera_thread_func, (void *)(param));
pthread_join(camera_thread, NULL);
另一个线程
void * camera_thread_func(void * arg)
{
global_param* param = (global_param*)arg;
CanonCameraWrapper& wrapper = param->wrapper;
wrapper.beginLiveView();//**//it wait time out here!!!**
...
}
【问题讨论】: