QT如何等待1个线程等待其他1个线程执行
如何在qt中等待一个线程等待另一个线程执行 我尝试使用QT如何等待1个线程等待其他1个线程执行,qt,Qt,如何在qt中等待一个线程等待另一个线程执行 我尝试使用Qt::BlockingQueuedConnection但两个线程都在等待 我的程序是这样的:一个线程是A,另一个线程是B,在线程A中发送信号命令线程B工作,然后在线程B中发送信号命令线程A工作 执行任务类: class ExecuteTask : public QObject { void doWork() { //do something emit toShow(); } } namespace Ui { clas
Qt::BlockingQueuedConnection
但两个线程都在等待
我的程序是这样的:一个线程是A,另一个线程是B,在线程A中发送信号命令线程B工作,然后在线程B中发送信号命令线程A工作
执行任务类:
class ExecuteTask : public QObject
{
void doWork()
{
//do something
emit toShow();
}
}
namespace Ui {
class ShowData;
}
class ShowData : public QWidget
{
connect(this , &ShowData::toDoThing, myTask,
&ExecuteTask::doWork, Qt::BlockingQueuedConnection);
connect(myTask , &ExecuteTask::toShow, this,
&ShowData ::dealShowData, Qt::BlockingQueuedConnection);
}
void ShowData::dealShowData()
{
emit toDoThing();
}
请提供一份报告。你现在的问题不清楚。你到底想达到什么目的?你得到了什么?请编辑您的问题,最好用MCVE进行澄清。这是什么类型的问题?重点是什么?你想学点新东西!在Qt框架中,线程有很多事情要做,其中一个想法是QSemaphore。如果我正确理解了您的问题(这是非常困难的),如果您根本不使用线程,那么就容易多了如果您使用
Qt::BlockingQueuedConnection
,那么当第二次发射发生时,您就会死锁,因为每个线程都在等待另一个线程。如果此
需要等待myTask::doWork
完成,则在此处使用阻塞连接类型,而不是另一种