QT编写多线程,一个线程 emit signal,一个运行 slot ,QueuedConnection ,signal 很多,signal 队列会超过吗??

endtheday 2014-12-31 01:48:35
如题,emit signal 很多且很快,运行 slot 线程的速度比较慢,signal 队列会累积很多,能知道signal队列的容量吗??后者QT有没有函数知道signal队列满了没有,满了,线程先不 emit signal ,各位大大知道吗??
...全文
465 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wohuazhen 2015-02-27
  • 打赏
  • 举报
回复
你现在是遇到问题,根据自己的猜测来提问的吧? 有可能你的猜测就不对。
zhenghn2010 2015-02-25
  • 打赏
  • 举报
回复
connect有3种方式,同步或者异步的。如果信号产生太快,理论上肯定有内存消耗完的时候如果不及时处理。感觉应该不会满,印象中是连表方式的。最好还是将产生与消耗想匹配,体现适时方面考虑。
shizi697241 2015-02-16
  • 打赏
  • 举报
回复
使用了好久的QT,没有遇到这个问题。
91program 2015-01-05
  • 打赏
  • 举报
回复
QT 下没有判断列表满的函数我不清楚,因为没有用过 QT。 在 WinCE 下,MsgQueue 满是没有提供判断的函数的。 ———————————————————————————————————————————————— 我参加 CSDN 博客之星大赛了,投票网址如下,大家多多支持。多谢先! http://vote.blog.csdn.net/blogstar2014/details?username=91program#content 每天都可以投一票支持我一下的。
endtheday 2015-01-04
  • 打赏
  • 举报
回复
就是这个,有没有办法知道 signal 队列满了没有,如果满了我先不发signal ,不满再发
91program 2014-12-31
  • 打赏
  • 举报
回复
从 LZ 你的描述,无法判断队列是否会超过,关键在于 Signal 产生与处理的速度比。
如果产生的速度快于处理的速度,队列一定会溢出的。

————————————————————————————————————————————————
我参加 CSDN 博客之星大赛了,投票网址如下,大家多多支持。多谢先!
http://vote.blog.csdn.net/blogstar2014/details?username=91program#content

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧