在之前使用VS-Qt编写代码时,将包含OpenCV waitKey() 的一个算法类放在了一个子线程里面(之前算法类调试时使用,没有删除),子线程通过接收Qt信号来执行算法。
然后发现了一个奇异的现象,即算法没有根据信号的输入顺序来执行,而是以相反的顺序执行的。后来发现,是由于代码之中使用了waitKey()函数,在代码执行到waitKey()时,子线程进入非阻塞循环,当接收到其他信号时,去执行了其他信号带来的事件,直到其他事件执行完毕再返回来执行waitKey()之后的代码。
在之前使用VS-Qt编写代码时,将包含OpenCV waitKey() 的一个算法类放在了一个子线程里面(之前算法类调试时使用,没有删除),子线程通过接收Qt信号来执行算法。
然后发现了一个奇异的现象,即算法没有根据信号的输入顺序来执行,而是以相反的顺序执行的。后来发现,是由于代码之中使用了waitKey()函数,在代码执行到waitKey()时,子线程进入非阻塞循环,当接收到其他信号时,去执行了其他信号带来的事件,直到其他事件执行完毕再返回来执行waitKey()之后的代码。