Size: a a a

2021 January 06

T

Timur Bairamukov 🚫🧢... in Qt
我が名はレギオン
QThread::isFinished() чем он не устраивает?
for (auto thread : threads) {
  while (thread.isFinished()) { yield(); }
}  
Что-то такое предлагаешь?
источник

МВ

Макс Воробьев... in Qt
Timur Bairamukov 🚫🧢
вообще, мне этот сигнал нужен, чтоб посчитать количество завершенных потоков, чтоб потом убедиться в том, что все потоки завершили свою работу. Может можно как-то проще сделать?
1) не наследуйся от QThread
источник

МВ

Макс Воробьев... in Qt
2) делаешь QObject с сигналом, который принимает
       const auto center_offset = this->center_offset;
       const auto scale = this->scale;
       const auto image_size = this->image_size;
источник

МВ

Макс Воробьев... in Qt
внутри этот сигнал коннетишь к слоту, который делает расчет
источник

МВ

Макс Воробьев... in Qt
который в while (true)
источник

МВ

Макс Воробьев... in Qt
while(true) соотв убираешь
источник

VK

Viacheslav Kaloshin in Qt
Timur Bairamukov 🚫🧢
вообще, мне этот сигнал нужен, чтоб посчитать количество завершенных потоков, чтоб потом убедиться в том, что все потоки завершили свою работу. Может можно как-то проще сделать?
Qthreadpool?
источник

МВ

Макс Воробьев... in Qt
            if (abort) {
               std::cout << "aborted" << std::endl;
               emit finished_();
               return;
           }
смотри https://doc.qt.io/qt-5/qthread.html#isInterruptionRequested
источник

МВ

Макс Воробьев... in Qt
добавляешь в QObject еще один сигнал через который передаешь результат из QObject в thread_manager
источник

МВ

Макс Воробьев... in Qt
никаких ожиданий
источник

МВ

Макс Воробьев... in Qt
и QObject->moveToThread(m_thread)
источник

МВ

Макс Воробьев... in Qt
Макс Воробьев
и QObject->moveToThread(m_thread)
void MyObject::startWorkInAThread()
{
   WorkerThread *workerThread = new WorkerThread(this);
   connect(workerThread, &WorkerThread::resultReady, this, &MyObject::handleResults);
   connect(workerThread, &WorkerThread::finished, workerThread, &QObject::deleteLater);
   workerThread->start();
}
если точнее
источник

МВ

Макс Воробьев... in Qt
источник

T

Timur Bairamukov 🚫🧢... in Qt
Макс Воробьев
2) делаешь QObject с сигналом, который принимает
       const auto center_offset = this->center_offset;
       const auto scale = this->scale;
       const auto image_size = this->image_size;
а сигналы и слоты в том же потоке исполняются или в новом?
источник

МВ

Макс Воробьев... in Qt
Timur Bairamukov 🚫🧢
а сигналы и слоты в том же потоке исполняются или в новом?
слоты выполняются в потоке объекта, у которого слот вызван
источник

МВ

Макс Воробьев... in Qt
если точнее - смотри опции connect
источник

T

Timur Bairamukov 🚫🧢... in Qt
понял, спасибо
источник

МВ

Макс Воробьев... in Qt
источник
2021 January 07

RG

Renat Garaev in Qt
@programmist_me https://github.com/mavlink/qgroundcontrol/
наверное будет интересно код вам посмотреть, QML с 1.7К Star на github
источник

МВ

Макс Воробьев... in Qt
https://github.com/MishkaRogachev/JAGCS интереснее местами
источник