Запускаем потоки с помощью QThreadЭкземпляр QThread представляет собой поток и предоставляет средства для запуска потока функцией start(), которая будет выполнять переопределенный QThread::run(). Реализация run() для потока - такая же точка входа, что и функция main() для приложения. Весь код выполняется в стеке вызовов, который начинается в функции run(), выполняющей новый поток, а заканчивается при завершении потока, когда происходит возврат из функции. QThread испускает сигналы, сообщающие о начале или окончании выполнения потока. Создание потокаДля создания потока создайте подкласс QThread и переопределите его функцию run(). Например: class MyThread : public QThread { Q_OBJECT protected: void run(); }; void MyThread::run() { ... } Запуск потокаЗатем создайте экземпляр объекта вашего потокового класса и вызовите QThread::start(). Обратите внимание, что вы должны создать объект QApplication (или QCoreApplication) до создания объектов QThread. Функция вернет управление немедленно, а главный поток будет продолжен. Код, который содержится в вашей реализации функции run(), будет выполнен в отдельном потоке. Создание потока подробно объясняется в документации QThread. Обратите внимание на то, что QCoreApplication::exec() всегда должна вызываться из главного потока (потока, в котором выполняется main()), а не из QThread. В приложениях с графическим пользовательским интерфейсом (ГПИ) главный поток также называется потоком GUI, потому что только ему разрешается выполнять какие-либо действия, связанные с ГПИ. |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |