【发布时间】:2013-12-09 18:39:43
【问题描述】:
我的情况是,我的应用程序中有未知数量的第 3 方线程调用回调。该回调在调用它的线程的上下文中发出一个信号。总是相同的信号,但 10 个不同的线程可以在任何给定时刻发出它。
我想在我拥有的单个 QThread 的上下文中将所有这些 singlas 排队并使用适当的插槽处理它们。
我该怎么做?以下代码不起作用。虽然我看到它从不同的线程发出信号,但我的“On...”从未被调用过。
QObject::connect(this,SIGNAL(ProcessQueuedOutEvent(int)),
this,
SLOT(OnProcessQueuedOutEvent(int)),
Qt::QueuedConnection);
【问题讨论】:
-
嗯 - 'OutEvent' 是否采用回调中返回的辅助指针/int,因此可用于传输上下文?
-
哦,我肯定必须将缓冲区复制到我的插槽中。我假设一旦函数返回,我得到的任何指针结构都会被删除。
-
你的类“this”是 QThread 对象吗,拥有 QThread 是什么意思?
-
是的。它“是”一个 QThread。
-
继承自QThread?!如果您没有重新实现 Qt 处理线程的方式,那么您做错了:blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong
标签: multithreading qt