- 主题:qt 信号槽按照Qt::QueuedConnection方式连接,能够获取到信号队
如:connect(this, SIGNAL(HasDataTobeProcess()), this, SLOT((send()), Qt::QueuedConnection);
能够获取到信号队列的长度吗?谢谢
--
FROM 111.200.54.*
qt的事件循环队列。
从总线收到信息后,压入一个待处理消息队列里,然后发一个信号emit HasDataTobeProcess();
connect(this, SIGNAL(HasDataTobeProcess()), this, SLOT(send()), Qt::QueuedConnection);
对应槽函数就是send(发送出去一个个处理消息)
采用Qt::QueuedConnection模式,按照信号排队方式,顺序处理。现在可能是有数据堆积,所以想看看能否获取qt信号槽中信号队列的长度,判断一下,是否是信号排队导致的数据堆积。
【 在 hgoldfish 的大作中提到: 】
: 不能吧。。那个是 Qt 事件循环的代码,之前看代码的时候没有看到相关的接口。
: 在 windows 底下用的是 PostMessage() 发送队列信息。所以还有 windows 事件循环队列和 Qt 事件循环队列两个队列。你需要的是哪个队列呢?
: 我的做法是自己再做个队列。
: ...................
--
FROM 111.200.54.*
ok,谢谢!
【 在 hgoldfish 的大作中提到: 】
: 这个事件循环队列效率很差不适合压入太多的数据量。主要是用于非 UI 线程更新 UI 的。
: 强烈建议你另外再搞个队列。
:
--
FROM 111.200.54.*