我正在深入研究我正在研究的一些源代码.我找到了一个有人编码的特殊声明.源代码是带有QML GUI的GUI应用程序,使用QT 4.7.x.
下面的代码片段属于核心应用程序逻辑.
// connect signal-slots for decoupling
QObject::connect (this, SIGNAL(setCurrentTaskSignal(int)), this,
SLOT(SetCurrentTaskSlot(int)), Qt::QueuedConnection);
Run Code Online (Sandbox Code Playgroud)
奇怪的是,对象通过排队连接连接到自身,这实际上意味着对象可以同时"生活"在不同的线程中?
乍一看这对我没有任何意义.任何人都可以想到为什么这种联系似乎是合情合理的还是需要的?这甚至会起作用吗?
在我的代码中,我发出一个信号(mySignal),我想在它继续之前等待连接槽(mySlot)执行的结束:
emit mySignal();
// Wait for the end of mySlot execution...
// Some code that has to be executed only after the end of mySlot execution...
Run Code Online (Sandbox Code Playgroud)
有办法吗?