1
正如主題所說,我從非GUI線程(某些GStreamer線程,準確地說)發佈事件。代碼如下所示:如何在Qt中調試從非GUI線程發佈的丟失事件?
GstBusSyncReply on_bus_message(GstBus* bus, GstMessage* message, gpointer data)
{
bool ret = QMetaObject::invokeMethod(static_cast<QObject*>(data), "stateChanged", Qt::QueuedConnection);
Q_ASSERT(ret);
return GST_BUS_PASS;
}
的問題是,stateChanged
(不要緊,無論它是一個槽或信號)不叫。我用調試器步入QMetaObject::invokeMethod
,接着它調用PostMessage
(順便說一句,在Windows上是Qt 4.6.2) - 一切似乎都正常。
對象指向data
住在GUI線程中,我已經仔細檢查過了。
如何調試此問題?或者,更好,也許完全避開它?