Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
BRE |
13.3.2009, 21:41
Сообщение
#31
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44
|
Цитата(SABROG @ 13.3.2009, 21:26) Link Если код делает тоже самое, то это не значит, что нет никакой разницы. Попробую пояснить. QTimer::singleShot внутри производит connect и emit сигнала timeout(). Т.к. соединение Qt::QueuedConnection, то формируется event, который помещается в очередь событий. QMetaObject::invokeMethod минует стадию connect'a и emit'a, и сразу помещает эвент в очередь. Конечно в скорости особо мы врятли выйграем, но просто как факт того, что разница есть. Согласен с SABROG, invokeMethod делает тоже, только более идиологически правильней. QTimer::singleShot внутри себя создает объект QSingleShotTimer, коннектится, короче делает некоторую не очень нужную работу. Просто это первое что пришло мне на ум. |
|
|
|
|
SABROG |
14.3.2009, 1:05
Сообщение
#32
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34
|
Как бы там нибыло, я не говорю, что все что я говорю это правильно, я не гуру ни в С++ ни в Qt. Просто хочется обратить внимание на интересные элементы библиотеки. В споре рождается истина © Сократ
Делайте как считаете правильным, альтернативные возможности имейте ввиду. Если в программе не помогут, то может быть станут отправной точкой в понимании механизмов. |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 3.1.2026, 10:59 |