Как настроить подключение сигнала/слот между потоком и дочерним потоком?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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