Суть вопроса в следующем, при выборе ConnectionType::QueuedConnection ничего не работает, при выборе ConnectionType::DirectConnection методы первого класса начинают вызываться, но выдается предупреждение, что осуществляется доступ из другого потока. Куда смотреть? Почему не работает с ConnectionType::QueuedConnection.
class Cls_1 : public QThread
{
Q_OBJECT
public:
Cls_1();
virtual ~Cls_1(){};
void Method_1(const double ¶m);
private:
void run();
};
Cls_1()::Cls_1()
{
}
void Cls_1::run()
{
...
exec();
}
void Cls_1::Method_1(const double ¶m)
{
;
}
class Cls_2 : public QObject
{
Q_OBJECT
public:
Cls_2();
virtual ~Cls_2(){};
void Method_1(const double ¶m);
signals:
void SignalMethod_1(const double ¶m);
}
Cls_2()::Cls_2()
{
}
void Cls_2::Method_1(const double ¶m)
{
emit SignalMethod_1(param);
}
Код создания и подключения:
Cls_1 *obj_1 = new Cls_1();
obj_1->start();
_sleep(10000);
Cls_2 *obj_2 = new Cls_2();
QObject::connect(obj_2, &Cls_2::SignalMethod_1, obj_1, &Cls_1::Method_1, Qt::ConnectionType::DirectConnection);
obj_2->Method_1(1);
Можно использовать прямой запуск слота без сигнала:
QMetaObject::invokeMethod(receiverObject, "slotName", Qt::QueuedConnection);
Вы создаёте cls2
в контексте текущего потока (который std::thread
). Чтобы этот объект был привязан к потоку obj_1
, надо сделать одно из двух:
cls2
изнутри метода Cls_1::run()
.cls2->moveToThread(obj_1);
.Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени суток! Ситуация такова: имеется код на с++ для решения некторой задачиПри отправке решения в систему-проверяльщик, один из тестов...
ЗдравствуйтеПомогите найти пожалуйста ошибку в реализации поиска k-ого элемента в массиве по неубыванию для чисел значение которых равно...
Работает как очистка памяти и все остальные шаблоны, без указания размера и типа, но правильно ли реализованы сами шаблоны?