Qt уроки #31. QThread - работа с потоками с помощью moveToThread

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 5

  • @ЮрийБочаров-з5х
    @ЮрийБочаров-з5х 5 лет назад +1

    Повторил в точности как в данном уроке. В результате кнопка Stop не срабатывает вообще, при нажатии Write 1 и Write 2 информация в потоки помещается через раз, чаще вообще ничего не передается. С чем это связано может быть? Start работает нормально.

  • @ПоповРоман-ь5п
    @ПоповРоман-ь5п 3 года назад

    а для дочерних окон такое можно применять?

  • @romanbush5164
    @romanbush5164 3 года назад +1

    Спасибо крайне полезная информация) без неё в гуи не как

  • @wlepnoga
    @wlepnoga 7 лет назад

    Делаю всё как на видео, но получаю ошибку.
    QObject::moveToThread: Current thread (0xd31670) is not the object's thread (0x7fff527d6b00).
    Cannot move to target thread (0x7fff527d6b10)
    connect(&potok, &QThread::started, &fun, &Funct::func1);
    connect(&potok2, &QThread::started, &fun, &Funct::func2);
    connect(&fun, &Funct::s_stop, &potok, &QThread::quit);
    connect(&fun, &Funct::s_stop, &potok2, &QThread::quit);
    fun.moveToThread(&potok);
    fun.moveToThread(&potok2);
    При запуске программы, 2й поток не работает, пока хотя бы 1 раз не запустишь первый. Что не так?

    • @EVILEG
      @EVILEG  7 лет назад

      Полагаю, что выделили память под какие-то объекты через оператор new и передали parent. Если хотите перенести объект в другой поток, то передавать ему указатель на parent не стоит. Поскольку объект в другой поток можно передать только без парента.