//Qt部分源码如下
.....//其他代码
else if(type == Qt::BlockingQueuedConnection)
{
if(currentThread == objectThread) //如果是同一条线程,就死锁了
qWarning("QMetaObject::invoke: Dead lock detected");
QSemaphore semaphore; //信号量
QCoreApplication::postEvent(Object, new QMetaCallEvent(slot, 0, -1, 0, 0, qrgv, &semaphore)); //将函数指针、函数参数、信号量的指针发送到事件队列
semaphore.acquire(); //默认形参为1,;获取1个数据,如果没有准备1个好数据,则阻塞
}
else
{
.... //其他代码