Как настроить подключение сигнала/слот между потоком и дочерним потоком?C++

Программы на C++. Форум разработчиков
Anonymous
Как настроить подключение сигнала/слот между потоком и дочерним потоком?

Сообщение Anonymous »

У меня есть класс ParentThread , полученный из qthread со следующим методом run () , который примерно выглядит следующим образом:

Код: Выделить всё

void ParentThread::run()
{
QThread *childThread = new QThread;
QObject::connect(childThread, SIGNAL(finished()), this, SLOT(onChildThreadFinished());
QObject::connect(childThread, SIGNAL(finished()), childThread, SLOT(deleteLater());
childThread->start();

exec();
}
Slot onChildThreadFineDishing () определяется на ParentThread и должен работать в контексте ParentThread . Тем не менее, используя приведенный выше код, onChildThreadFined вызывается только в случае, если соединение Signal/Slot является QT :: DirectConnection , но затем работает в контексте детского потока. В случае, если соединение сигнала/слот определяется как QT :: queuedConnection , слот никогда не вызывается. Я использую QT 4.8.5. Есть идеи, в чем проблема?


Подробнее здесь: https://stackoverflow.com/questions/258 ... ild-thread

Вернуться в «C++»