针对信号发送间隔短而槽耗时大的两种解决方案
有时候会遇到这种情况:每50毫秒发送来一个信号,而槽函数对应执行却需要大于50毫秒来解决,这种情况下:
1)如果需要对每个发来的信号都做出处理,那么有两种方式来解决,即在信号与槽的connect函数中明确第五个参数,将其设置成DirectConnection方式阻塞时编程,或者设置成BlockingQueuedConnection按照加锁队列都可以很好的解决;
2)如果只需要对最新的信号做处理,那么这里也给出两种方案来处理:
a、槽所在线程设置bool状态,信号所在线程通过判定这个bool的状态来确定是否发送信号;
b、槽执行完毕,则向信号所在线程发送返回值,信号所在线程通过判定发来的这个返回值来判定是否继续对槽所在线程发送新的信号。
针对2)所在情况,在视频解码中尤为常见,如:抛帧操作,在此,提供demo以示查询:demo地址见下 --------------------- 本文来自 Little柯南 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u010111033/article/details/79369006?utm_source=copy