Russian Qt Forum
Апрель 19, 2024, 08:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: suggestion  (Прочитано 38093 раз)
Akon
Гость
« Ответ #30 : Апрель 10, 2011, 18:32 »

Про агрегацию и наследование.
Например, поток делает периодически какие-то действия. Делает, ждёт, делает ...
Так вот, ждать лучше всего sleep'ом. А он защищенный у потока. Так что приходиться наследоваться.


Верно подмечено. Когда функция потока реализует блокирующее поведение (например, сокеты блокирующие и т.п.), sleep находит применение. В такой реализации никакого эвентлупа нет.
Записан
CL0NE
Гость
« Ответ #31 : Апрель 10, 2011, 20:10 »

А
Код
C++ (Qt)
int QObject::startTimer ( int interval )
не подходит для замены? хотя все равно event loop.
« Последнее редактирование: Апрель 10, 2011, 20:13 от CL0NE » Записан
Akon
Гость
« Ответ #32 : Апрель 10, 2011, 20:48 »

таймеру нужен эвентлуп
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3258


Просмотр профиля
« Ответ #33 : Апрель 10, 2011, 20:51 »

у вас неприязнь слова луп? Тред и так по дефолту начинает его крутить
Записан
CL0NE
Гость
« Ответ #34 : Апрель 10, 2011, 23:36 »

Дополнение к линкам - http://developer.qt.nokia.com/wiki/ThreadsEventsQObjects там же есть незавершенный русский перевод. На хабре есть полный русский ( http://habrahabr.ru/blogs/qt_software/115830/ http://habrahabr.ru/blogs/qt_software/115832/ )
Записан
Bepec
Гость
« Ответ #35 : Март 16, 2012, 19:00 »

Вопрос интересный по теме. Если есть необходимость в классе(которому необходим другой поток) использовать таймеры, то как возможно отказаться от "наследования от QThread", ведь таймер созданный в 1 потоке не может быть остановлен в ином. Так же таймер не переносится из потока в поток?

PS предлагать таймеры создавать динамически отдельным слотом не предлагать Подмигивающий "кучи указателей" мне не нужны.
Записан
vbi
Гость
« Ответ #36 : Март 16, 2012, 23:11 »

Вопрос интересный по теме. Если есть необходимость в классе(которому необходим другой поток) использовать таймеры, то как возможно отказаться от "наследования от QThread", ведь таймер созданный в 1 потоке не может быть остановлен в ином. Так же таймер не переносится из потока в поток?

PS предлагать таймеры создавать динамически отдельным слотом не предлагать Подмигивающий "кучи указателей" мне не нужны.
Почему нельзя остановить таймер в ином потоке? Можно ведь через сигнально-слотовое соединение.
Записан
Bepec
Гость
« Ответ #37 : Март 20, 2012, 07:47 »

А ты будешь создавать отдельную функцию под остановку/запуск каждого таймера? Или тебе это удобно?
Особено с учётом того, что таймер созданный в основном потоке, в нём и продолжает выполняться. Приводя к неизбежным тормозам в вычислениях.
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.164 секунд. Запросов: 22.