我正在尝试使用多线程和OpenCV,所以我编写了以下程序。
void performSearch(Mat& original, Mat& grey, Mat& result)
{
for(size_t index = 0; index < container.size(); ++index)
{
// do stuff
imshow("Results", result);
waitKey();
}
}
int main()
{
thread(performSearch, ref(image), ref(image_grey), ref(answer)).join();
thread(performSearch, ref(image2), ref(image2_grey), ref(answer2)).join();
}
此程序将抛出NSInternalInconsistencyException
异常,因为需要在主线程上运行waitKey()
。我的问题是,我如何将附加到主线程?
我有一个iOS背景,并且有一个重要的中央调度,我只需要做一些事情:
DispatchQueue.main.async // this gets me the main queue asynchronously
{
// update UI
}
是否可以在C ++中实现这一目标?如果是,怎么样?
抬头: 我查看了this问题,他们正在使用QT作为他们的GUI。我不是。