针对信号发送间隔短而槽耗时大的两种解决方案

探讨了信号发送间隔短而槽耗时长的问题,提出两套解决方案:一是确保每个信号都被处理,通过设置DirectConnection或BlockingQueuedConnection;二是只处理最新信号,利用bool状态或返回值判定是否发送新信号。常见于视频解码中的抛帧操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

针对信号发送间隔短而槽耗时大的两种解决方案

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值