Помогите разобаться с потоками. |
Здравствуйте, гость ( Вход | Регистрация )
Помогите разобаться с потоками. |
Litkevich Yuriy |
10.1.2011, 19:13
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я имею ввиду, что этот отдельный поток, где создаются виджеты и есть главный. лучше главный поток и называть главным, чтобы никого столку не сбивать.3 виджета (лсд, кнопка, и базовый, куда они помещаются) создаются в main.cpp. При этом они создаются в главном потоке или нет? Да. Всё что не является наследником QThread и не использует moveToThread() находится в главном потоке.Всё что не является наследником QThread если быть более точным, то - сам наследник QThread создаётся в главном потоке, а затем вызывается его метод start(), который, в свою очередь, вызывает метод run(). Дак вот именно метод run() и выполняется в отдельном потоке, и как следствие, все объекты созданные в методе run() находятся в отдельном потоке.Слоты, к которым происходит коннект вызываются в главном потоке или нет? Слоты находятся в том потоке, в котором находится их объект. Если у тебя все виджеты в главном потоке, то и их слоты соответственно тоже в главном потоке, но это справедливо для соединений типа "авто" (по умолчанию) и "в очередь"(queued).А здесь я не уверен насчет сигналов до exec() в потоке. Собственноручно посылать сигнал можно, а вот, например, сигнал от таймера (созданного здесь же) уже посылаться не будет, т.к. локальная очередь событий не запущена и в таймере не произойдёт события "таймаут"Ну а вообще: ... виджеты живут в основном потоке, но если они получают неприрывный поток сигналов, они это отрабатывают и не дают возможности сигналам и событиям перемещения прийти. +100
|
|
|
franza |
10.1.2011, 19:24
Сообщение
#12
|
Новичок Группа: Новичок Сообщений: 8 Регистрация: 3.1.2011 Пользователь №: 2323 Спасибо сказали: 0 раз(а) Репутация: 0 |
спасибо, вроде разобрался. напишу еще, если появятся вопросы.
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 13:29 |