关于回调函数所运行的线程问题!

windforce1210 2018-03-11 12:55:11
我使用海康的sdk二次开发,其中用到回调函数来读取实时视频流。
在这个过程中,我开了一个子线程用来准备做视频捕获。
在run函数中,设置了回调函数
//预览取流
llRealHandle = NET_DVR_RealPlay_V30(lUserID,&ClientInfo,fRealDataCallBack,NULL,TRUE);

那么请问我的回调函数fRealDataCallBack 运行的时候,是在子线程里,还是在主线程里啊?
因为看书上说,只有run函数是在子线程中的 那回调按理说是一个消息机制,那到底在哪个线程中运行呢?
...全文
2386 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyousi 2018-04-11
  • 打赏
  • 举报
回复
NET_DVR_RealPlay_V30只是注册了一个回调函数,至于fRealDataCallBack何时何地会被调用,那要看海康sdk是怎么处理的。基本确定fRealDataCallBack不会在你这个子线程中执行,可能在海康的SDK自行创建的线程中执行
萧洛 2018-03-12
  • 打赏
  • 举报
回复
一般回调应该在主线程中,因为设置回调其实就是调置一个函数指针(供SDK调用)。 如果不确定,可以用qDebug() << QThread::currentThreadId()查看。 在主线程和回调函数里都加上qDebug() << QThread::currentThreadId(),看看两个值是否一样。
MAYBEALL 2018-03-11
  • 打赏
  • 举报
回复
qDebug()<<QThread::currentThreadId(); 试试就知道

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧