Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: Примерный ученик от Июль 23, 2010, 12:58



Название: В потоках допустимы?
Отправлено: Примерный ученик от Июль 23, 2010, 12:58
QT 3.3.8

Допустимо ли использование в потоках
      QDate cD=QDate::currentDate();
      QTime cT=QTime::currentTime();
поскольку
 
Цитировать
Класс QTimer, и классы для работы с сетью QFtp, QHttp, QSocket и QSocketNotifier, целиком зависят от цикла обработки событий, поэтому они не могут использоваться за пределами главного потока.


Название: Re: В потоках допустимы?
Отправлено: SABROG от Июль 23, 2010, 17:13
QTimer - QObject
QFtp - QObject
QHttp - QObject
QSocket - QObject
QSocketNotifier - QObject

QDate - не QObject
QTime - не QObject

Классы не наследующие QObject в цикле событий не нуждаются, но это не значит, что классы на базе QObject'а нельзя использовать в разных потоках, если есть такое ограничение, то оно есть только для Qt3, в случае с Qt более свежей версий этих ограничений нет при соблюдении некоторых условий.


Название: Re: В потоках допустимы?
Отправлено: Примерный ученик от Июль 23, 2010, 17:31
спасибо


Название: Re: В потоках допустимы?
Отправлено: serg_hd от Июль 23, 2010, 20:57
да и запустить обработчик событий во второстепенном потоке тоже никто не запрещает(exec()). Создавал и запускал когда-то QTimer(хотя и не рекомендуется) в нём, было дело.